Node.js ZKSync不是构造函数

Node.js ZKSync不是构造函数,node.js,Node.js,我试图使用类编写测试,但遇到了一个错误 以下是测试: import assert from 'assert' const ethers = require('ethers'); const zksync = require('zksync'); const ZKSync = require('../../../../app/scripts/controllers/zksync'); describe('zkSync', function () { let zkSync

我试图使用类编写测试,但遇到了一个错误

以下是测试:

import assert from 'assert'
const  ethers  = require('ethers');
const zksync = require('zksync');

const ZKSync = require('../../../../app/scripts/controllers/zksync');


describe('zkSync', function () {
    let zkSync
    before(async () => {
        // zkSync = new ZKSync(new Proxy({}, ethers, zksync))
        zkSync = new ZKSync(ethers, zksync);
    })
  
    describe('initAccount', function () {
      it('registers an account on zksync', async () => {
        const TEST_SEED = 'debris dizzy just program just float decrease vacant alarm reduce speak stadium'
        const ethersProvider = await  new ZKSync.getEthereumProvider(ethers,'rinkeby')
        const zkSyncProvider = await new  ZKSync.getZkSyncProvider('testnet');
        const aliceRinkebyWallet = new  ethersProvider.Wallet.fromMnemonic(TEST_SEED);
        const aliceZKsyncWallet = new ZKSync.initAccount(aliceRinkebyWallet,zkSyncProvider); 

        assert.strictEqual(await aliceZKsyncWallet.isSigningKeySet(), true, 'account is registered.')
      })
    })
})
以下是它调用的代码:

const ethers = require('ethers')
const zksync = require('zksync')

export default class ZKSync {
  constructor (ethers, zksync) {
    // const initState = opts.initState || {}
    // this.store = new ObservableStore(initState)
    // this.keyringController = opts.keyringController
    this.ethers = ethers
    this.zksync = zksync
  }
  
  async getZkSyncProvider (zksync, networkName) {
    let zkSyncProvider
    try {
      zkSyncProvider = await zksync.getDefaultProvider(networkName)
    } catch (error) {
      console.log('Unable to connect to zkSync.')
      console.log(error)
    }
    return zkSyncProvider
  }
  
  async  getEthereumProvider (ethers, networkName) {
    let ethersProvider
    try {
      // eslint-disable-next-line new-cap
      ethersProvider = new this.ethers.getDefaultProvider(networkName)
    } catch (error) {
      console.log('Could not connect to Rinkeby')
      console.log(error)
    }
    return ethersProvider
  }
  async  initAccount (rinkebyWallet, zkSyncProvider) {
    const zkSyncWallet = await this.zksync.Wallet.fromEthSigner(rinkebyWallet, zkSyncProvider)
    return zkSyncWallet
  }
}
我使用
mochatest/unit/app/controllers/zksync lib test.js
运行测试

但是,我得到以下错误:

  TypeError: ZKSync is not a constructor

我将非常感谢任何关于这方面的建议。

新建ZKSync.getEthereumProvider(ethers,'rinkeby')
?你想在这里干什么?我也不知道您在哪里使用
zkSync
。它是库的一部分,我将更新它。是的,但您是否打算每次都创建一个新对象?错误在哪一行?是的,我打算创建一个新对象。错误来自
zkSync=newzksync(以太,zkSync)