Minor API pain-points

Open
#141 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Stale
Tech stack
rust

Research direction

Start by reading the listed AssetId::generate_asset_entropy(), Explicit Asset Display, confidential::Asset/Value/Nonce, UnBlindError, and TxOut::unblind entry points. The issue groups five separate API requests, so first separate and scope them against the existing Rust transaction and PSBT code. Done would require an agreed scope and corresponding implementations for the selected requests, with behavior covered by the project’s existing checks.

Written by the indexing model from the issue text.

Description

These are things that are easy to workaround downstream, but would one-liner if we had upstream support. I will update the list as I find more things:

  1. Direct API for calculating assetid and token id directly from prevouts during initial issuance. This currently a multi step process which requires dealing calling the AssetId::generate_asset_entropy() API.
  2. Display implementations of Explicit Asset should add the 0x01 prefix
  3. Add FromStr implementation for confidential::Asset/Value/Nonce. Currently, we need to decode a bytes and call encode::deserialize. It would be great to have methods for a) from_slice/to_vec() b) Display/FromStr c) FromHex/ToHex.
  4. Implement auto-derives for Error data structures. For example: UnBlindError.
  5. Separate out TxOut::unblind API into two APIs. TxOut::unblind_from_prf. This will also it to re-use it for psbt logic too
Dominant language
Rust
Stars
57
Forks
40
Avg merge
11h 58m
Merged PRs (30d)
1

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from ElementsProject/rust-elements

All issues in ElementsProject/rust-elements

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.