iotaledger / iotaledger/product-core

[Request]: Implement wasm-bindings for KeyPairSigner

Open
#35 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
0
Forks
2
Avg merge
1h 29m
Merged PRs (30d)
3

Description

### Feature description

At the moment, the only Signer that can easily be used to test IOTA products in TypeScript tests is the `Ed25519KeypairSigner` included in the `iota-interaction-ts` package
([bindings/wasm/iota_interaction_ts/lib/test_utils/ed_25519_keypair_signer.ts](https://github.com/iotaledger/product-core/blob/main/bindings/wasm/iota_interaction_ts/lib/test_utils/ed_25519_keypair_signer.ts)).

The `Ed25519KeypairSigner` can only be used with Ed25519 keypairs.

The `iota_interaction` crate includes a `KeyPairSigner`
([iota_interaction/src/keypair_signer.rs](https://github.com/iotaledger/product-core/blob/main/iota_interaction/src/keypair_signer.rs)) that doesn't offer wasm-bindings to be used with TS/JS at the moment. `KeyPairSigner` can be used with Ed25519, Secp256k1 and Secp256r1 keypairs (via using `IotaKeyPair`).

We need to implement wasm-bindings for the `KeyPairSigner` to allow using it instead of the currently offered `Ed25519KeypairSigner` to allow tests with Secp256k1 and Secp256r1 in TypeScript.

### Motivation

Allow tests with Secp256k1 and Secp256r1 in TypesScript.

### Requirements

-

### Open questions

_No response_

### Are you planning to do it yourself in a pull request?

Yes

Contributor guide

Open the contributing guide

Research direction

Start by comparing bindings/wasm/iota_interaction_ts/lib/test_utils/ed_25519_keypair_signer.ts with iota_interaction/src/keypair_signer.rs, focusing on how the existing signer is exposed to TypeScript. Add wasm bindings for KeyPairSigner and verify that TypeScript tests can use Ed25519, Secp256k1, and Secp256r1 keypairs.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust, typescript, wasm
Domain
testing, tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.