Skip to content

Native Assets Metadata

Compare
Choose a tag to compare
@rvl rvl released this 12 Feb 12:21
v2021-02-12
d98f708

This release fixes performance issues related to the multi-asset UTxO, adds asset fields which were missing from some API endpoints, and adds support for getting the name and description of native assets in the wallet via a metadata server. Work on supporting multi-signature transactions continues.

Compatible with cardano-node@1.25.1.

New Features

  • When listing native assets for a wallet, metadata for these assets can be retrieved from a token metadata server. #2496 #2505 #2506 #2507 #2509
  • Assets in the API have a new fingerprint field following the CIP-0014 draft. #2512
  • Allow posting multi-sig scripts to the "any address" API endpoint. #2494 #2501
  • Update to cardano-addresses 3.2.0 with multi-sig features #2401

Improvements

Resolved Issues

  • Recover from a problem some users reported where their wallet database was partially migrated to the new schema. #2503

  • Multi-asset UTxO performance improvements:

    • Rework checkpoint reading from database to avoid quadratic queries with number of assets #2502
    • Repair database benchmarks #2499
    • Make estimateFee faster for large wallets #2491
  • Multi-asset coin selection bug fixes:

    • Return fewer change outputs when the minimum ada quantity cannot be satisfied. #2490
    • Allow constructing change output from any input #2484
    • Give priority to singleton asset bundles during coin selection #2482
    • Fix delegation fee wrongly including key deposit #2479
  • API: Get and list only assets associated with the wallet #2492

Quality Improvements

  • Add mock-token-metadata-server FILE command for testing #2511
  • Fix flaky WalletSpec property #2487
  • Add era-specific integration test assertions #2483
  • Let tests and cluster run in pre-mary eras again #2493
  • Remove 0.2% restore bench to prevent nightly timeouts #2477

API Changes

  • Added: GET /byron-wallets/{walletId}/assets

  • Added: GET /byron-wallets/{walletId}/assets/{policyId}/{assetName}

  • Added: GET /byron-wallets/{walletId}/assets/{policyId}

  • Updated: GET /wallets/{walletId}/assets/{policyId}/{assetName}

    • Response modified: 200
      • Body attribute added: fingerprint
  • Updated: GET /wallets/{walletId}/assets

    • Response modified: 200
      • Body attribute added: fingerprint
  • Updated: GET /wallets/{walletId}/assets/{policyId}

    • Response modified: 200
      Body attribute added: fingerprint
  • Updated: POST /addresses

    • Body attribute added: validation

Known Issues

  • Cannot send funds from Byron random addresses created via cardano-address. (#2058)

  • Reward balance briefly appears to be zero while the wallet is still syncing. (ADP-621)

  • On mainnet, transactions sometimes fail with the error: "Whoops, it seems like I just experienced a hard-fork in the middle of other tasks." (ADP-617)

  • CLI has import and create commands which are not supported for Shelley wallets. (ADP-613)

  • DB migrations occur on every start. (ADP-612)

  • A wallet's balance temporarily increases when spending rewards. (ADP-611)

  • Performance issues on large wallets with regards to transaction sending. (ADP-586)

  • Multi-address transactions sometimes result in an internal server error. (ADP-571)

  • Wrong error message in case of unsupported Accept header in /wallet/{walletId}/signatures. (ADP-551)

  • Excessive log spam (ADP-630)

  • HTTP timeout on SMASH health-check prevent pools metadata synchronization entirely (ADP-636)

  • produced_blocks sometimes stop increasing #2463

  • Transaction with TTL=0 results in 'created_invalid_transaction' intermittently (ADP-674)

  • "Something went wrong" on delegation fee request while wallet and node are syncing through Byron era (ADP-679)

  • Wallet restoration time deteriorated 2x in v2021-01-28 (ADP-690)

  • Listing transaction time deteriorated (even up to 3x) (ADP-691)

  • Faulty error message on sending transaction when there are not enough tokens/ada (ADP-697)

  • Fee estimation slowness (up to 4x slower when there are many wallets) (ADP-702)

  • Low signal-to-noise ratio for logging (ADP-708)

  • List/get asset endpoints show assets that are involved in a transaction of the wallet, but even those that are not on wallet balance (ADP-710)

Documentation

📕 💻 🐳
API Documentation CLI Manual Docker Manual

Installation Instructions

  1. Install cardano-node@1.25.1.

  2. Download the provided cardano-wallet for your platform, and uncompress it in a directory that is on your $PATH, e.g. /usr/local/bin. Or %PATH% on Windows.

  3. Start cardano-wallet --help and see available parameters.

Docker

Pull from DockerHub and verify the version matches 2021.2.12.

$ docker pull inputoutput/cardano-wallet:2021.2.12-shelley
$ docker run --rm inputoutput/cardano-wallet:2021.2.12-shelley version

Signatures

Name Role Approval
Matthias Benkort @KtorZ Technical Architect ✔️
Rodney Lorrimar @rvl Technical Team Lead ✔️
Piotr Stachyra @piotr-iohk QA Engineer ✔️
Laurence Jenkins @LaurenceIO Release Manager ✔️