Skip to content

Commit

Permalink
feat: upgrade lumos to 0.23 (#3204)
Browse files Browse the repository at this point in the history
* feat: upgrade lumos to 0.23

* feat: upgrade lumos to 0.23

* fix: cannot read mock properties

* fix: build crypto with webpack

* fix: tsc

* fix: cannot access storybook

---------

Co-authored-by: Chen Yu <[email protected]>
  • Loading branch information
homura and Keith-CY committed Jul 17, 2024
1 parent bd4f797 commit 316a906
Show file tree
Hide file tree
Showing 108 changed files with 528 additions and 381 deletions.
11 changes: 10 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@
"ncp": "2.0.0",
"prettier": "2.8.8",
"ts-jest": "29.1.4",
"ts-node": "^10.9.2",
"typescript": "5.3.3",
"wait-on": "7.0.1"
},
Expand All @@ -66,7 +67,15 @@
"@types/react": "18.2.45",
"react-i18next": ">=11.16.4",
"react-refresh": "0.14.0",
"node-fetch": "2.6.13"
"node-fetch": "2.6.13",
"@ckb-lumos/ckb-indexer": "0.23.0",
"@ckb-lumos/base": "0.23.0",
"@ckb-lumos/bi": "0.23.0",
"@ckb-lumos/codec": "0.23.0",
"@ckb-lumos/common-scripts": "0.23.0",
"@ckb-lumos/config-manager": "0.23.0",
"@ckb-lumos/lumos": "0.23.0",
"@ckb-lumos/rpc": "0.23.0"
},
"volta": {
"node": "20.10.0"
Expand Down
5 changes: 5 additions & 0 deletions packages/neuron-ui/.storybook/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,11 @@ export default {
options: {},
},
webpackFinal: config => {
config.resolve.fallback = {
fs: false,
crypto: false,
buffer: false,
}
config.resolve.alias = {
...config.resolve.alias,
electron: require.resolve('./electron'),
Expand Down
6 changes: 5 additions & 1 deletion packages/neuron-ui/config-overrides.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ const path = require('path')
module.exports = function override(config) {
const webpackConfig = { ...config }
webpackConfig.resolve.alias.electron = path.join(__dirname, 'src/electron-modules')
webpackConfig.resolve.fallback = { fs: false }
webpackConfig.resolve.fallback = {
fs: false,
crypto: false,
buffer: false,
}
return webpackConfig
}
2 changes: 1 addition & 1 deletion packages/neuron-ui/src/components/CellInfoDialog/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { calculateUsedCapacity, getExplorerUrl, shannonToCKBFormatter, truncateM
import { useTranslation } from 'react-i18next'
import Tabs from 'widgets/Tabs'
import { type TFunction } from 'i18next'
import { Script } from '@ckb-lumos/base'
import { Script } from '@ckb-lumos/lumos'
import Switch from 'widgets/Switch'
import { Copy, ExplorerIcon } from 'widgets/Icons/icon'
import Alert from 'widgets/Alert'
Expand Down
2 changes: 1 addition & 1 deletion packages/neuron-ui/src/components/CellManagement/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import { TFunction } from 'i18next'
import TextField from 'widgets/TextField'
import { useSearchParams } from 'react-router-dom'
import CellInfoDialog from 'components/CellInfoDialog'
import { computeScriptHash } from '@ckb-lumos/base/lib/utils'
import { computeScriptHash } from '@ckb-lumos/lumos/utils'
import Hardware from 'widgets/Icons/Hardware.png'
import Button from 'widgets/Button'
import Alert from 'widgets/Alert'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { useNavigate, useParams } from 'react-router-dom'
import { useTranslation } from 'react-i18next'
import { calculateUnlockDaoMaximumWithdraw, getTransaction } from 'services/remote'
import { showPageNotice, transactionState, useDispatch, useState as useGlobalState } from 'states'
import { type CKBComponents } from '@ckb-lumos/rpc/lib/types/api'
import { type CKBComponents } from '@ckb-lumos/lumos/rpc'
import PageContainer from 'components/PageContainer'
import LockInfoDialog from 'components/LockInfoDialog'
import ScriptTag from 'components/ScriptTag'
Expand Down
2 changes: 1 addition & 1 deletion packages/neuron-ui/src/components/LockInfoDialog/index.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useTranslation } from 'react-i18next'
import React, { useRef } from 'react'
import { type CKBComponents } from '@ckb-lumos/rpc/lib/types/api'
import { type CKBComponents } from '@ckb-lumos/lumos/rpc'
import Dialog from 'widgets/Dialog'
import { useCopy, useDialog, scriptToAddress } from 'utils'
import { Copy } from 'widgets/Icons/icon'
Expand Down
2 changes: 1 addition & 1 deletion packages/neuron-ui/src/components/MultisigAddress/hooks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import {
OfflineSignJSON,
getMultisigSyncProgress,
} from 'services/remote'
import { computeScriptHash } from '@ckb-lumos/base/lib/utils'
import { computeScriptHash } from '@ckb-lumos/lumos/utils'

export const useSearch = (clearSelected: () => void, onFilterConfig: (searchKey: string) => void) => {
const [keywords, setKeywords] = useState('')
Expand Down
6 changes: 3 additions & 3 deletions packages/neuron-ui/src/components/NervosDAO/hooks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@ import { AppActions, StateAction } from 'states/stateProvider/reducer'
import { updateNervosDaoData, clearNervosDaoData } from 'states/stateProvider/actionCreators'

import { NavigateFunction } from 'react-router-dom'
import { type CKBComponents } from '@ckb-lumos/rpc/lib/types/api'
import { type CKBComponents } from '@ckb-lumos/lumos/rpc'
import { calculateAPC, CONSTANTS, isSuccessResponse, RoutePath } from 'utils'

import { rpc, getHeader } from 'services/chain'
import { generateDaoWithdrawTx, generateDaoClaimTx } from 'services/remote'
import { calculateMaximumWithdrawCompatible } from '@ckb-lumos/common-scripts/lib/dao'
import { calculateMaximumWithdrawCompatible } from '@ckb-lumos/lumos/common-scripts/dao'

const { MILLISECONDS_IN_YEAR, MEDIUM_FEE_RATE } = CONSTANTS

Expand Down Expand Up @@ -337,7 +337,7 @@ export const useUpdateDepositEpochList = ({
useEffect(() => {
if (connectionStatus === 'online') {
getBlockHashes(records.map(v => v.depositOutPoint?.txHash).filter(v => !!v) as string[]).then(
(depositBlockHashes: { txHash: string; blockHash: string | null }[]) => {
depositBlockHashes => {
const recordKeyIdx: string[] = []
const batchParams: ['getHeader', string][] = []
records.forEach(record => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React, { FC, useMemo, useState } from 'react'
import Tabs, { VariantProps } from 'widgets/Tabs'
import { type CKBComponents } from '@ckb-lumos/rpc/lib/types/api'
import { type CKBComponents } from '@ckb-lumos/lumos/rpc'
import { clsx, localNumberFormatter, shannonToCKBFormatter, scriptToAddress, isMainnet as isMainnetUtils } from 'utils'
import { useTranslation } from 'react-i18next'
import { onEnter } from 'utils/inputDevice'
Expand Down
2 changes: 1 addition & 1 deletion packages/neuron-ui/src/components/NervosDAORecord/hooks.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { useEffect } from 'react'
import { getHeader } from 'services/chain'
import { calculateAPC, CONSTANTS } from 'utils'
import { type CKBComponents } from '@ckb-lumos/rpc/lib/types/api'
import { type CKBComponents } from '@ckb-lumos/lumos/rpc'

const { MILLISECONDS_IN_YEAR } = CONSTANTS

Expand Down
2 changes: 1 addition & 1 deletion packages/neuron-ui/src/components/ScriptTag/index.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import React from 'react'
import { type CKBComponents } from '@ckb-lumos/rpc/lib/types/api'
import { type CKBComponents } from '@ckb-lumos/lumos/rpc'
import {
MultiSigLockInfo,
LocktimeLockInfo,
Expand Down
2 changes: 1 addition & 1 deletion packages/neuron-ui/src/components/Send/hooks.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React, { useState, useCallback, useEffect, useMemo } from 'react'
import { TFunction } from 'i18next'
import { type CKBComponents } from '@ckb-lumos/rpc/lib/types/api'
import { type CKBComponents } from '@ckb-lumos/lumos/rpc'
import { AppActions, StateDispatch } from 'states/stateProvider/reducer'
import { generateTx, generateSendingAllTx } from 'services/remote/wallets'
import { ControllerResponse, SuccessFromController } from 'services/remote/remoteApiWrapper'
Expand Down
6 changes: 3 additions & 3 deletions packages/neuron-ui/src/components/SpecialAssetList/hooks.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React, { useCallback, useEffect } from 'react'
import { number, bytes } from '@ckb-lumos/codec'
import { type CKBComponents } from '@ckb-lumos/rpc/lib/types/api'
import { bytes, Uint64LE } from '@ckb-lumos/lumos/codec'
import { type CKBComponents } from '@ckb-lumos/lumos/rpc'
import { getSUDTAccountList } from 'services/remote'
import { NeuronWalletActions, useDispatch } from 'states'
import {
Expand Down Expand Up @@ -145,7 +145,7 @@ export const useSpecialAssetColumnInfo = ({

switch (assetInfo.lock) {
case PresetScript.Locktime: {
const targetEpochInfo = epochParser(bytes.hexify(number.Uint64LE.pack(`0x${lock.args.slice(-16)}`)))
const targetEpochInfo = epochParser(bytes.hexify(Uint64LE.pack(`0x${lock.args.slice(-16)}`)))
const currentEpochInfo = epochParser(epoch)
const targetEpochFraction =
Number(targetEpochInfo.length) > 0 ? Number(targetEpochInfo.index) / Number(targetEpochInfo.length) : 1
Expand Down
2 changes: 1 addition & 1 deletion packages/neuron-ui/src/components/WithdrawDialog/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { CONSTANTS, shannonToCKBFormatter, localNumberFormatter, useCalculateEpo
import { getTransaction, getHeader } from 'services/chain'
import Dialog from 'widgets/Dialog'
import { Attention } from 'widgets/Icons/icon'
import { calculateMaximumWithdrawCompatible } from '@ckb-lumos/common-scripts/lib/dao'
import { calculateMaximumWithdrawCompatible } from '@ckb-lumos/lumos/common-scripts/dao'
import styles from './withdrawDialog.module.scss'

const { WITHDRAW_EPOCHS } = CONSTANTS
Expand Down
4 changes: 2 additions & 2 deletions packages/neuron-ui/src/services/chain.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { CKBRPC } from '@ckb-lumos/rpc'
import { RPC } from '@ckb-lumos/lumos'

export const rpc = new CKBRPC('')
export const rpc = new RPC('')

export const { getHeader, getBlockchainInfo, getTipHeader, getHeaderByNumber, getFeeRateStatistics, getTransaction } =
rpc
2 changes: 1 addition & 1 deletion packages/neuron-ui/src/states/stateProvider/reducer.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { OutPoint } from '@ckb-lumos/base'
import type { OutPoint } from '@ckb-lumos/lumos'
import produce, { Draft } from 'immer'
import { OfflineSignJSON } from 'services/remote'
import initStates from 'states/init'
Expand Down
2 changes: 1 addition & 1 deletion packages/neuron-ui/src/stories/ScriptTag.stories.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Meta, StoryObj } from '@storybook/react'
import { withRouter } from 'storybook-addon-react-router-v6'
import { action } from '@storybook/addon-actions'
import { type CKBComponents } from '@ckb-lumos/rpc/lib/types/api'
import { type CKBComponents } from '@ckb-lumos/lumos/rpc'
import ScriptTag from 'components/ScriptTag'

const scripts: Record<string, CKBComponents.Script> = {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { describe, it, expect } from '@jest/globals'
import { MultisigConfig } from 'services/remote'
import { addressToScript, getMultisigSignStatus } from 'utils'
import { computeScriptHash } from '@ckb-lumos/base/lib/utils'
import { computeScriptHash } from '@ckb-lumos/lumos/utils'

const addresses = [
'ckt1qyqwh5hmt8j59njztrfz6z0s9wug3nv5qysqrnfm2h',
Expand Down
2 changes: 1 addition & 1 deletion packages/neuron-ui/src/utils/calculateUsedCapacity.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { type CKBComponents } from '@ckb-lumos/rpc/lib/types/api'
import { type CKBComponents } from '@ckb-lumos/lumos/rpc'

const CODE_HASH_LENGTH = 32
const HASH_TYPE_LENGTH = 1
Expand Down
11 changes: 6 additions & 5 deletions packages/neuron-ui/src/utils/formatters.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import { molecule } from '@ckb-lumos/codec'
import { blockchain } from '@ckb-lumos/base'
import { formatUnit, ckbDecimals } from '@ckb-lumos/bi'
import { table, blockchain } from '@ckb-lumos/lumos/codec'
import { formatUnit } from '@ckb-lumos/lumos/utils'
import { TFunction } from 'i18next'
import { FailureFromController } from 'services/remote/remoteApiWrapper'
import { CapacityUnit } from './enums'

const CKB_DECIMALS = 8

const base = 10e9
const numberParser = (value: string, exchange: string) => {
if (Number.isNaN(+value)) {
Expand Down Expand Up @@ -112,7 +113,7 @@ export const shannonToCKBFormatter = (shannon: string, showPositiveSign?: boolea
return new Intl.NumberFormat('en-US', {
useGrouping: showCommaSeparator,
signDisplay: showPositiveSign && +shannon > 0 ? 'always' : 'auto',
maximumFractionDigits: ckbDecimals,
maximumFractionDigits: CKB_DECIMALS,
}).format(formatUnit(BigInt(shannon ?? '0'), 'ckb') as any)
}

Expand Down Expand Up @@ -259,7 +260,7 @@ type FormatterOptions = { args: string; data?: string; clusterName?: string; tru
export const sporeFormatter = ({ args, data, clusterName, truncate }: FormatterOptions) => {
let format = 'Spore'

const SporeData = molecule.table(
const SporeData = table(
{
contentType: blockchain.Bytes,
content: blockchain.Bytes,
Expand Down
2 changes: 1 addition & 1 deletion packages/neuron-ui/src/utils/getLockSupportShortAddress.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { type CKBComponents } from '@ckb-lumos/rpc/lib/types/api'
import { type CKBComponents } from '@ckb-lumos/lumos/rpc'
import { AnyoneCanPayLockInfoOnAggron, AnyoneCanPayLockInfoOnLina, DefaultLockInfo, MultiSigLockInfo } from './enums'

const getLockSupportShortAddress = (lock: CKBComponents.Script) => {
Expand Down
2 changes: 1 addition & 1 deletion packages/neuron-ui/src/utils/getMultisigSignStatus.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { addressToScript } from 'utils'
import { computeScriptHash } from '@ckb-lumos/base/lib/utils'
import { computeScriptHash } from '@ckb-lumos/lumos/utils'
import { MultisigConfig } from 'services/remote'

export const getMultisigSignStatus = ({
Expand Down
2 changes: 1 addition & 1 deletion packages/neuron-ui/src/utils/multisig.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ckbHash } from '@ckb-lumos/base/lib/utils'
import { ckbHash } from '@ckb-lumos/lumos/utils'
import { scriptToAddress } from 'utils'
import { MultiSigLockInfo } from './enums'
import { MAX_M_N_NUMBER } from './const'
Expand Down
2 changes: 1 addition & 1 deletion packages/neuron-ui/src/utils/outPointTransform.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { type CKBComponents } from '@ckb-lumos/rpc/lib/types/api'
import { type CKBComponents } from '@ckb-lumos/lumos/rpc'

export const outPointToStr = (value: CKBComponents.OutPoint): string => {
return `${value.txHash}_${value.index}`
Expand Down
8 changes: 4 additions & 4 deletions packages/neuron-ui/src/utils/parsers.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { since } from '@ckb-lumos/base'
import { number, bytes } from '@ckb-lumos/codec'
import { since } from '@ckb-lumos/lumos'
import { bytes, Uint128LE, Uint64LE } from '@ckb-lumos/lumos/codec'
import { MILLISECONDS, PAGE_SIZE } from './const'

export const listParams = (search: string) => {
Expand Down Expand Up @@ -45,7 +45,7 @@ export const toUint128Le = (hexString: string) => {
s = s.slice(0, 34)
}

return bytes.hexify(number.Uint128LE.pack(s))
return bytes.hexify(Uint128LE.pack(s))
}

export const getLockTimestamp = ({
Expand All @@ -57,7 +57,7 @@ export const getLockTimestamp = ({
epoch: string
bestKnownBlockTimestamp: number
}) => {
const targetEpochInfo = epochParser(bytes.hexify(number.Uint64LE.pack(`0x${lockArgs.slice(-16)}`)))
const targetEpochInfo = epochParser(bytes.hexify(Uint64LE.pack(`0x${lockArgs.slice(-16)}`)))
const currentEpochInfo = epochParser(epoch)
const targetEpochFraction =
Number(targetEpochInfo.length) > 0 ? Number(targetEpochInfo.index) / Number(targetEpochInfo.length) : 1
Expand Down
9 changes: 4 additions & 5 deletions packages/neuron-ui/src/utils/scriptAndAddress.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
import { type Script } from '@ckb-lumos/base'
import { predefined } from '@ckb-lumos/config-manager'
import { encodeToAddress, parseAddress, generateAddress } from '@ckb-lumos/helpers'

const { LINA: MAINNET, AGGRON4: TESTNET } = predefined
import { type Script } from '@ckb-lumos/lumos'
import { MAINNET, TESTNET } from '@ckb-lumos/lumos/config'
import { encodeToAddress, parseAddress } from '@ckb-lumos/lumos/helpers'
import { generateAddress } from '@ckb-lumos/helpers'

const CONFIGS = {
[MAINNET.PREFIX]: MAINNET,
Expand Down
2 changes: 1 addition & 1 deletion packages/neuron-ui/src/utils/validators/capacity.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { CKBToShannonFormatter } from 'utils/formatters'
import { CapacityTooSmallException } from 'exceptions'
import { bytes as byteUtils } from '@ckb-lumos/codec'
import { bytes as byteUtils } from '@ckb-lumos/lumos/codec'
import { addressToScript } from 'utils'

export const validateCapacity = (item: State.Output) => {
Expand Down
14 changes: 5 additions & 9 deletions packages/neuron-wallet/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -42,15 +42,11 @@
]
},
"dependencies": {
"@ckb-lumos/base": "0.21.1",
"@ckb-lumos/bi": "0.21.1",
"@ckb-lumos/ckb-indexer": "0.21.1",
"@ckb-lumos/codec": "0.21.1",
"@ckb-lumos/common-scripts": "0.21.1",
"@ckb-lumos/config-manager": "0.21.1",
"@ckb-lumos/hd": "0.21.1",
"@ckb-lumos/helpers": "0.21.1",
"@ckb-lumos/rpc": "0.21.1",
"@ckb-lumos/base": "0.23.0",
"@ckb-lumos/ckb-indexer": "0.23.0",
"@ckb-lumos/helpers": "0.23.0",
"@ckb-lumos/rpc": "0.23.0",
"@ckb-lumos/lumos": "0.23.0",
"@iarna/toml": "2.2.5",
"@ledgerhq/hw-transport-node-hid": "6.27.22",
"@spore-sdk/core": "0.1.0",
Expand Down
3 changes: 2 additions & 1 deletion packages/neuron-wallet/src/block-sync-renderer/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ import DataUpdateSubject from '../models/subjects/data-update'
import AddressCreatedSubject from '../models/subjects/address-created-subject'
import WalletDeletedSubject from '../models/subjects/wallet-deleted-subject'
import TxDbChangedSubject from '../models/subjects/tx-db-changed-subject'
import { type Cell, type QueryOptions } from '@ckb-lumos/base'
import { type QueryOptions } from '@ckb-lumos/base'
import { type Cell } from '@ckb-lumos/lumos'
import { WorkerMessage, StartParams, QueryIndexerParams } from './task'
import logger from '../utils/logger'
import CommonUtils from '../utils/common'
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Tip } from '@ckb-lumos/base'
import { type CKBComponents } from '@ckb-lumos/lumos/rpc'
import logger from '../../utils/logger'
import CommonUtils from '../../utils/common'
import RpcService from '../../services/rpc-service'
Expand All @@ -15,7 +15,7 @@ export default class FullSynchronizer extends Synchronizer {
this.rpcService = new RpcService(nodeUrl, nodeType)
}

private async synchronize(indexerTipBlock: Tip) {
private async synchronize(indexerTipBlock: CKBComponents.Tip) {
if (!indexerTipBlock) {
return
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import RpcService from '../../services/rpc-service'
import TransactionWithStatus from '../../models/chain/transaction-with-status'
import SyncInfoEntity from '../../database/chain/entities/sync-info'
import { getConnection } from '../../database/chain/connection'
import { TransactionCollector, CellCollector, Indexer as CkbIndexer } from '@ckb-lumos/ckb-indexer'
import { TransactionCollector, Indexer as CkbIndexer, CellCollector } from '@ckb-lumos/ckb-indexer'

export default class IndexerCacheService {
private addressMetas: AddressMeta[]
Expand Down
Loading

2 comments on commit 316a906

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Packaging for test is done in 9967299384

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Packaging for test is done in 9967300754

Please sign in to comment.