@cfxdevkit/devnode / ServerManager
Class: ServerManager
Defined in: packages/devnode/src/server-manager.ts:55
Server Manager for xcfx/node lifecycle management Handles starting, stopping, and managing the Conflux development node
Constructors
Constructor
new ServerManager(
config):ServerManager
Defined in: packages/devnode/src/server-manager.ts:69
Parameters
config
Returns
ServerManager
Methods
addAccount()
addAccount(
privateKey?):Promise<AccountInfo>
Defined in: packages/devnode/src/server-manager.ts:349
Add a new account to the server
Parameters
privateKey?
string
Returns
Promise<AccountInfo>
fundAccount()
fundAccount(
address,amount,chainType?):Promise<void>
Defined in: packages/devnode/src/server-manager.ts:385
Fund an account with CFX Note: @xcfx/node doesn’t provide direct funding methods. This would require using RPC calls to send transactions from funded genesis accounts.
Parameters
address
string
amount
string
chainType?
"core" | "evm"
Returns
Promise<void>
fundCoreAccount()
fundCoreAccount(
targetAddress,amount):Promise<string>
Defined in: packages/devnode/src/server-manager.ts:787
Fund a Core Space account using the faucet account
Parameters
targetAddress
string
amount
string
Returns
Promise<string>
fundDualChainAccount()
fundDualChainAccount(
privateKey,coreAmount,evmAmount):Promise<{coreAddress:string;coreHash:string;evmAddress:string;evmHash:string; }>
Defined in: packages/devnode/src/server-manager.ts:968
Fund both Core and eSpace accounts for the same private key
Parameters
privateKey
string
coreAmount
string
evmAmount
string
Returns
Promise<{ coreAddress: string; coreHash: string; evmAddress: string; evmHash: string; }>
fundEvmAccount()
fundEvmAccount(
targetAddress,amount):Promise<string>
Defined in: packages/devnode/src/server-manager.ts:883
Fund an eSpace account from the Core-Space faucet/mining account.
Funds ALWAYS originate from the Core-Space faucet wallet (which accumulates mining rewards). For eSpace (0x…) targets the transfer is routed through the Conflux internal cross-chain bridge contract (0x0888…0006 / transferEVM), which locks CFX on Core and mints it on eSpace — no separate eSpace balance is needed on the faucet account.
Parameters
targetAddress
string
amount
string
Returns
Promise<string>
getAccounts()
getAccounts():
AccountInfo[]
Defined in: packages/devnode/src/server-manager.ts:315
Get generated accounts
Returns
getConfig()
getConfig():
ServerConfig
Defined in: packages/devnode/src/server-manager.ts:305
Get server configuration
Returns
getCoreBalance()
getCoreBalance(
address):Promise<string>
Defined in: packages/devnode/src/server-manager.ts:1036
Check Core Space balance
Parameters
address
string
Returns
Promise<string>
getEthereumAdminAddress()
getEthereumAdminAddress():
string
Defined in: packages/devnode/src/server-manager.ts:1100
Get Ethereum-compatible admin address derived from mnemonic Uses the standard Ethereum derivation path: m/44’/60’/0’/0/0 This address will match what MetaMask and other Ethereum wallets derive
Returns
string
getEvmBalance()
getEvmBalance(
address):Promise<string>
Defined in: packages/devnode/src/server-manager.ts:1074
Check eSpace balance
Parameters
address
string
Returns
Promise<string>
getFaucetAccount()
getFaucetAccount():
AccountInfo
Defined in: packages/devnode/src/server-manager.ts:774
Get the faucet/mining account (dedicated mining account with separate derivation path) This account receives mining rewards and serves as the faucet Derivation paths: Core=m/44’/503’/1’/0/0, EVM=m/44’/60’/1’/0/0
Returns
getFaucetBalances()
getFaucetBalances():
Promise<FaucetBalances>
Defined in: packages/devnode/src/server-manager.ts:1006
Check faucet account balances on both chains
Returns
Promise<FaucetBalances>
getLogs()
getLogs(
lines?):Promise<string[]>
Defined in: packages/devnode/src/server-manager.ts:429
Get server logs Note: @xcfx/node doesn’t provide direct log access. Logs would need to be captured during server startup or accessed via system logs.
Parameters
lines?
number = 50
Returns
Promise<string[]>
getMiningStatus()
getMiningStatus():
MiningStatus
Defined in: packages/devnode/src/server-manager.ts:763
Get current mining status
Returns
getMnemonic()
getMnemonic():
string
Defined in: packages/devnode/src/server-manager.ts:322
Get the mnemonic phrase
Returns
string
getNodeStatus()
getNodeStatus():
object
Defined in: packages/devnode/src/server-manager.ts:285
Get comprehensive node status including mining
Returns
object
accounts
accounts:
number
config
config:
Partial<ServerConfig>
mining
mining:
MiningStatus
rpcUrls
rpcUrls:
object
rpcUrls.core
core:
string
rpcUrls.coreWs
coreWs:
string
rpcUrls.evm
evm:
string
rpcUrls.evmWs
evmWs:
string
rpcUrls.ws
ws:
string
server
server:
ServerStatus
getRpcUrls()
getRpcUrls():
object
Defined in: packages/devnode/src/server-manager.ts:329
Get RPC URLs
Returns
object
core
core:
string
coreWs
coreWs:
string
evm
evm:
string
evmWs
evmWs:
string
ws
ws:
string
getStatus()
getStatus():
ServerStatus
Defined in: packages/devnode/src/server-manager.ts:278
Get current server status
Returns
isRunning()
isRunning():
boolean
Defined in: packages/devnode/src/server-manager.ts:298
Check if server is running
Returns
boolean
mine()
mine(
blocks?):Promise<void>
Defined in: packages/devnode/src/server-manager.ts:675
Mine a specific number of blocks immediately
Parameters
blocks?
number = 1
Returns
Promise<void>
packMine()
packMine():
Promise<void>
Defined in: packages/devnode/src/server-manager.ts:722
Pack and mine: calls test_generateOneBlock (mine({ numTxs:1 })) which forces pending eSpace/Core transactions into a block. Each call internally generates deferredStateEpochCount (default 5) blocks.
This is the ONLY way to include eSpace (EVM) transactions — mine({ blocks }) skips the txpool for eSpace. Uses a long timeout because test_generateOneBlock can take several seconds on slow machines.
Returns
Promise<void>
restart()
restart():
Promise<void>
Defined in: packages/devnode/src/server-manager.ts:270
Restart the Conflux development node
Returns
Promise<void>
saveConfig()
saveConfig(
filepath):Promise<void>
Defined in: packages/devnode/src/server-manager.ts:447
Save server configuration to file
Parameters
filepath
string
Returns
Promise<void>
setMiningInterval()
setMiningInterval(
interval):Promise<void>
Defined in: packages/devnode/src/server-manager.ts:645
Change mining interval (stops and restarts mining with new interval)
Parameters
interval
number
Returns
Promise<void>
setNextBlockTimestamp()
setNextBlockTimestamp(
timestamp):Promise<void>
Defined in: packages/devnode/src/server-manager.ts:409
Set next block timestamp (for testing) Note: @xcfx/node doesn’t provide direct timestamp control. Use createTestClient from ‘cive’ and connect to the running node’s RPC.
Parameters
timestamp
number
Returns
Promise<void>
start()
start():
Promise<void>
Defined in: packages/devnode/src/server-manager.ts:119
Start the Conflux development node
Returns
Promise<void>
startMining()
startMining(
interval?):Promise<void>
Defined in: packages/devnode/src/server-manager.ts:562
Start automatic block mining using testClient This creates an interval that mines blocks automatically
Parameters
interval?
number
Mining interval in milliseconds (default: 2000ms)
Returns
Promise<void>
stop()
stop():
Promise<void>
Defined in: packages/devnode/src/server-manager.ts:222
Stop the Conflux development node
Returns
Promise<void>
stopMining()
stopMining():
Promise<void>
Defined in: packages/devnode/src/server-manager.ts:623
Stop automatic block mining
Returns
Promise<void>
loadConfig()
staticloadConfig(filepath):Promise<ServerConfig>
Defined in: packages/devnode/src/server-manager.ts:476
Load server configuration from file
Parameters
filepath
string
Returns
Promise<ServerConfig>