         return networks.first { $0.uids == uids }
     }
 
-    /// The system's Wallet Managers, unsorted.  A WalletManager will hold an 'unowned'
-    /// reference back to `System`
-    public internal(set) var managers: [WalletManager] = [];
-
-    internal func managerBy (core: BRCryptoWalletManager) -> WalletManager? {
+     internal func managerBy (core: BRCryptoWalletManager) -> WalletManager? {
         return managers
             .first { $0.core == core }
     }


        // Filter remotes to only contain entries for builtin blockchains
        let supportedRemote = remote.filter { item in builtin.contains(where: { $0.id == item.id } ) }

        // For existing remotes:
        supportedRemote.forEach { (blockchain: BlockChainDB.Model.Blockchain) in
            // 1) api_only is a supported mode
            let modes = supportedModesMap[blockchain.id]
            supportedModesMap[blockchain.id] = (nil == modes
                ? [.api_only]
                : (modes!.contains (.api_only)   // all modes contain .api_only; but this does no harm.
                    ? modes!
                    : ([.api_only] + modes!)))

            // 2) api_only is a default mode if a default doesn't exist
            if nil == defaultModesMap[blockchain.id] {
                defaultModesMap[blockchain.id] = .api_only
            }
        }

        // Merge builtin into supportedRemote
        return supportedRemote.unionOf(builtin) { $0.id }

        "bitcoin-testnet":      [.btcSegwit, .btcLegacy],
        "bitcoincash-testnet":  [.btcLegacy],
        "ethereum-ropsten":     [.ethDefault],
//        "ripple-testnet":       [.genDefault]
    ]

    static let defaultAddressSchemeMap: [String:AddressScheme] = [
        "bitcoin-mainnet":      .btcSegwit,
        "bitcoincash-mainnet": .btcLegacy,
        "ethereum-mainnet":     .ethDefault,
