From b0051f735b6832bfaec82c0ee231473dc2af6e9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=A5=E5=9B=BD=E5=AE=87?= <841185308@qq.com> Date: Fri, 24 Mar 2023 11:42:08 +0800 Subject: [PATCH 01/17] feat: Adapt ckb light node (#2590) --- .ckb-light-version | 1 + .../src/components/NetworkSetting/index.tsx | 12 +- .../src/components/NetworkTypeLabel/index.tsx | 4 + packages/neuron-ui/src/locales/en.json | 1 + packages/neuron-ui/src/locales/zh.json | 1 + packages/neuron-ui/src/services/chain.ts | 3 +- packages/neuron-ui/src/styles/index.scss | 2 +- packages/neuron-ui/src/utils/const.ts | 2 + packages/neuron-wallet/electron-builder.yml | 12 + packages/neuron-wallet/light/ckb_light.toml | 55 +++ .../src/block-sync-renderer/index.ts | 5 +- .../src/block-sync-renderer/sync/connector.ts | 44 ++ .../sync/indexer-connector.ts | 110 ++--- .../sync/light-connector.ts | 227 ++++++++++ .../src/block-sync-renderer/sync/queue.ts | 67 ++- .../src/block-sync-renderer/task.ts | 2 +- .../block-sync-renderer/tx-status-listener.ts | 4 +- .../src/controllers/export-debug.ts | 12 +- .../src/controllers/offline-sign.ts | 9 +- .../neuron-wallet/src/controllers/sync-api.ts | 15 +- .../database/chain/entities/sync-progress.ts | 48 +++ .../neuron-wallet/src/database/chain/index.ts | 10 +- .../1676441837373-AddSyncProgress.ts | 28 ++ .../src/database/chain/ormconfig.ts | 8 +- .../src/models/chain/live-cell.ts | 2 +- packages/neuron-wallet/src/models/network.ts | 4 +- .../src/models/system-script-info.ts | 2 +- .../src/services/hardware/ledger.ts | 9 +- .../src/services/light-runner.ts | 150 +++++++ .../src/services/live-cell-service.ts | 2 +- .../neuron-wallet/src/services/networks.ts | 31 +- packages/neuron-wallet/src/services/node.ts | 46 ++- .../neuron-wallet/src/services/rpc-service.ts | 60 +-- .../neuron-wallet/src/services/sdk-core.ts | 34 -- .../neuron-wallet/src/services/settings.ts | 19 +- .../src/services/sync-progress.ts | 83 ++++ .../src/services/transaction-sender.ts | 20 +- .../src/services/tx/transaction-generator.ts | 2 +- .../neuron-wallet/src/types/controller.d.ts | 2 +- packages/neuron-wallet/src/types/rpc.d.ts | 3 + packages/neuron-wallet/src/utils/ckb-rpc.ts | 297 ++++++++++++++ packages/neuron-wallet/src/utils/const.ts | 2 + .../neuron-wallet/src/utils/rpc-request.ts | 5 +- .../indexer-connector.test.ts | 14 +- .../light-connector.test.ts | 386 ++++++++++++++++++ .../tests/block-sync-renderer/queue.test.ts | 44 +- .../tests/controllers/offline-sign.test.ts | 22 +- .../tests/controllers/sync-api.test.ts | 18 +- .../tests/models/chain/live-cell.test.ts | 2 +- .../tests/services/light-runner.test.ts | 283 +++++++++++++ .../tests/services/networks.test.ts | 6 +- .../neuron-wallet/tests/services/node.test.ts | 114 ++---- .../services/tx/transaction-sender.test.ts | 23 +- .../neuron-wallet/tests/utils/ckb-rpc.test.ts | 19 + .../tests/utils/rpc-request.test.ts | 5 +- scripts/download-ckb.sh | 34 ++ 56 files changed, 2032 insertions(+), 393 deletions(-) create mode 100644 .ckb-light-version create mode 100644 packages/neuron-wallet/light/ckb_light.toml create mode 100644 packages/neuron-wallet/src/block-sync-renderer/sync/connector.ts create mode 100644 packages/neuron-wallet/src/block-sync-renderer/sync/light-connector.ts create mode 100644 packages/neuron-wallet/src/database/chain/entities/sync-progress.ts create mode 100644 packages/neuron-wallet/src/database/chain/migrations/1676441837373-AddSyncProgress.ts create mode 100644 packages/neuron-wallet/src/services/light-runner.ts delete mode 100644 packages/neuron-wallet/src/services/sdk-core.ts create mode 100644 packages/neuron-wallet/src/services/sync-progress.ts create mode 100644 packages/neuron-wallet/src/types/rpc.d.ts create mode 100644 packages/neuron-wallet/src/utils/ckb-rpc.ts create mode 100644 packages/neuron-wallet/tests/block-sync-renderer/light-connector.test.ts create mode 100644 packages/neuron-wallet/tests/services/light-runner.test.ts create mode 100644 packages/neuron-wallet/tests/utils/ckb-rpc.test.ts diff --git a/.ckb-light-version b/.ckb-light-version new file mode 100644 index 0000000000..f0cfd3bb67 --- /dev/null +++ b/.ckb-light-version @@ -0,0 +1 @@ +v0.2.2 diff --git a/packages/neuron-ui/src/components/NetworkSetting/index.tsx b/packages/neuron-ui/src/components/NetworkSetting/index.tsx index 34ed75a005..c0dcfc12df 100644 --- a/packages/neuron-ui/src/components/NetworkSetting/index.tsx +++ b/packages/neuron-ui/src/components/NetworkSetting/index.tsx @@ -11,6 +11,7 @@ import { chainState } from 'states' import { setCurrentNetowrk } from 'services/remote' import { backToTop, RoutePath, useOnHandleNetwork, useOnWindowResize, useToggleChoiceGroupBorder } from 'utils' +import { LIGHT_CLIENT_TESTNET } from 'utils/const' import styles from './networkSetting.module.scss' const NetworkSetting = ({ chain = chainState, settings: { networks = [] } }: State.AppWithNeuronWallet) => { @@ -71,11 +72,12 @@ const NetworkSetting = ({ chain = chainState, settings: { networks = [] } }: Sta {`(${network.remote}`} - - - {isDefault ? null : ( + {network.chain === LIGHT_CLIENT_TESTNET ? null : ( + + )} + {isDefault || network.chain === LIGHT_CLIENT_TESTNET ? null : (