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)代码>