2017-11-10 169 views
0

我尝试在一个新的角度4应用 我做了什么来实现bitcoinjs-lib(,,???):无法解决所有参数ECPair:

npm install bitcoinjs-lib --save 
npm install @types/bitcoinjs-lib --save 

我app.component.ts:

import { Inject } from '@angular/core'; 
import { Component } from '@angular/core'; 
import { HDNode, Transaction, ECPair } from 'bitcoinjs-lib' 

@Component({ 
    selector: 'app-root', 
    templateUrl: './app.component.html', 
    styleUrls: ['./app.component.css'] 
}) 
export class AppComponent { 
    title = 'app'; 

    constructor(private ecPair: ECPair){ 
    console.log(this.ecPair.getAddress()) 
    } 
} 

编译成功,但我在浏览器中得到:

Uncaught Error: Can't resolve all parameters for ECPair: (?, ?, ?). 
    at syntaxError (compiler.js:466) 

这里是ECPair在node_modules :

export class ECPair { 
    constructor(d: BigInteger, Q?: null, options?: { compressed?: boolean, network?: Network }); 

    constructor(d: null | undefined, Q: any, options?: { compressed?: boolean, network?: Network }); // Q should be ECPoint, but not sure how to define such type 

    d: BigInteger; 

    getAddress(): string; 
... 
} 

据我所知,他不知道如何实例化它,因为differents参数类型,我该如何解决它?我用@Inject尝试过,但无法解决。

谢谢

回答

1

您必须正确提供。在你@NgModule你应该使用这样的事情:

@NgModule({ 
    ... 
    providers: [ 
    ... 
    { ECPair, useFactory:()=>new ECPair(d,Q,options) } 
    ] 
}) 

指定dQoptions适当的参数。

相关问题