Skip to content

Commit

Permalink
docs(website): move the browser compatibility to 0.24
Browse files Browse the repository at this point in the history
  • Loading branch information
homura committed Jun 27, 2024
1 parent dde4bc9 commit 6d9c062
Show file tree
Hide file tree
Showing 3 changed files with 122 additions and 121 deletions.
94 changes: 48 additions & 46 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

75 changes: 74 additions & 1 deletion website/docs/migrations/migrate-to-v0.24.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,79 @@
# Migrate to Lumos v0.24

## Disallow the Omnilock P2SH Address by Default
## BREAKING: Buffer replaced by Uint8Array

**Lumos can now run in browsers without any extra configs / polyfills with vite, webpack or create-react-app.**

### `Buffer` was return type

Methods / functions used to return a `Buffer` now returns a `Uint8Array`, e.g. In `@ckb-lumos/hd`

```diff
- export function privateToPublic(privateKey: Buffer | HexString): Buffer | HexString
+ export function privateToPublic(privateKey: Uint8Array | HexString): Uint8Array | HexString

- export function mnemonicToSeedSync(mnemonic = "", password = ""): Buffer
+ export function mnemonicToSeedSync(mnemonic = "", password = ""): Uint8Array

- export function mnemonicToSeed(mnemonic = "", password = ""): Promise<Buffer>
+ export function mnemonicToSeed(mnemonic = "", password = ""): Promise<Uint8Array>
```

You can use the `hexify` method from `@ckb-lumos/lumos/codec` to replace `buffer.toString('hex')`

```diff
- "0x" + privateToPublick(privKey).toString('hex')
+ hexify(privateToPublic(privKey))
```

**Notice:** `hexify` returns `HexString` which starts with `'0x'` while `buffer.toString('hex')` result has **no** `'0x'` prefix.

Same for `@ckb-lumos/hd/KeyStore`

```diff
export default class Keystore {
...
- derivedKey(password: string): Buffer
+ derivedKey(password: string): Uint8Array
...
}
```

### `Buffer` was parameter type

You can still pass in `Buffer` because `Buffer` is a subclass of `Uint8Array`, but using `Uint8Array` is recomended.

`@ckb-lumos/hd/KeyChain`

```diff
export default class Keychain {
...
- constructor(privateKey: Buffer, chainCode: Buffer)
+ constructor(privateKey: Uint8Array, chainCode: Uint8Array)
...
- hash160(data: Buffer): Buffer
+ hash160(data: Uint8Array): Uint8Array
}
```

`@ckb-lumos/hd/KeyStore`

```diff
export default class Keystore {
...
static create(
extendedPrivateKey: ExtendedPrivateKey,
password: string,
- options: { salt?: Buffer; iv?: Buffer } = {}
+ options: { salt?: Uint8Array; iv?: Uint8Array } = {}
): Keystore
...
- static mac(derivedKey: Buffer, ciphertext: Buffer): HexStringWithoutPrefix
+ static mac(derivedKey: Uint8Array, ciphertext: Uint8Array): HexStringWithoutPrefix
}
```

## BREAKING: Disallow the Omnilock P2SH Address by Default

The default options of `createOmnilockScript` disallows the use of P2SH addresses for security reasons.
Not all P2SH addresses are P2SH-P2WPKH addresses.
Expand Down
74 changes: 0 additions & 74 deletions website/docs/migrations/migrate-to-v0.30.md

This file was deleted.

0 comments on commit 6d9c062

Please sign in to comment.