Skip to content

Latest commit

 

History

History
87 lines (56 loc) · 2.55 KB

migration-2.0.0.md

File metadata and controls

87 lines (56 loc) · 2.55 KB

Version 2.0.0 Migration guide

⚠️ Upgrading to version 2.0.0 will come with breaking changes! Please follow the migration guide for a smooth transition to the new version.

Breaking changes

CashuWallet interface changes

removed payLnInvoice helper

The helper function was removed. Instead users will have to manage a melt quote manually:

const quote = await wallet.createMeltQuote(invoice);
const totalAmount = quote.fee_reserve + invoiceAmount;
const { keep, send } = await wallet.send(totalAmount, proofs);
const payRes = await wallet.meltProofs(quote, send);

Preference for outputs are now passed as a object of simple arrays

AmountPreference is not used anymore.

preference?: Array<AmountPreference>; -> outputAmounts?: OutputAmounts;

where

export type OutputAmounts = {
	sendAmounts: Array<number>;
	keepAmounts?: Array<number>;
};

CashuWallet can no longer be instantiated using BIP39 mnemonic!

In order to reduce the bundle size, BIP39 has been removed as a dependency of cashu-ts. Therefore users that want to use deterministic secrets with a BIP39 menmonic will have to convert the wordlist into a seed manually and then instantiate the wallet using:

const wallet = new CashuWallet(mint, { bip39seed: uint8ArrayOfSeed });

checkProofsStates replaces checkProofsSpent

To check the state of a Proof, call CashuWallet.checkProofsStates. checkProofsStates now returns an array of ProofState's, one for each Proof provided. The spent states are in ProofState.state and can have the values CheckStateEnum.SPENT, CheckStateEnum.UNSPENT, and CheckStateEnum.PENDING. ProofState also contains a witness if present.


renamed functions

  • in SendResponse, returnChange is now called keep
  • CashuWallet.mintTokens() is now called CashuWallet.mintProofs() and returns <Promise<Array> instead of Promise<{proofs: Array}>
  • CashuWallet.meltTokens() is now called CashuWallet.meltProofs()
  • CashuMint.split() is now called CashuMint.swap()

Type changes

Wallet payload types

  • BlindedTransaction has been removed
  • BlindedMessageData has been replaced by BlindingData
    • In BlindingData rs has been renamed to blindingFactors

Token Types

  • The Token type no longer reassembles the token v3 structure, but instead is a simple object type:
type Token = {
	mint: string;
	proofs: Array<Proof>;
	memo?: string;
	unit?: string;
};
  • The old Token type got renamed to DeprecatedToken