멋진 커뮤니티 모듈

BitcoinJS (bitcoinjs-lib)

빌드 상태 NPM 다음 커밋을위한 팁

Node.js 표준 스타일

node.js 및 브라우저 용 순수 JavaScript 비트 코인 라이브러리입니다. 1,500 만 명 이상의 지갑 사용자가 사용하는 것으로 추정되며 오늘날 생산중인 거의 모든 비트 코인 웹 지갑의 백본입니다.

풍모

  • Clean: 순수 JavaScript, 간결한 코드, 읽기 쉽습니다.
  • Tested: Coverage> 90 %, 타사 통합 테스트.
  • Careful: 소규모의 집중적 인 pull 요청을위한 2 인 승인 프로세스.
  • Compatible: Node.js 및 모든 최신 브라우저에서 작동합니다.
  • Powerful: 다중 서명, HD 지갑과 같은 고급 기능 지원.
  • Secure: 강력한 난수 생성, PGP 서명 릴리스, 신뢰할 수있는 개발자.
  • Principled: crap RNG (IE <11)가있는 브라우저는 지원하지 않습니다.
  • Standardized: 노드 커뮤니티 코딩 스타일, Browserify, Node의 stdlib 및 버퍼.
  • Fast: 최적화 된 코드, 성능을 위해 바이트 배열 대신 형식화 된 배열을 사용합니다.
  • 실험 친화적 : 비트 코인 메인 넷 및 테스트 넷 지원.
  • Altcoin-ready : 비트 코인에서 파생 된 암호 화폐 (예 : Dogecoin)로 작업 할 수 있습니다.

프로덕션에서 사용해야합니까?

프로덕션에서이 라이브러리의 마스터 브랜치를 사용하려는 경우 stop .Master는 안정적이지 않습니다. 이것은 개발 브랜치이며 태그가 지정된 릴리스 만 stable로 분류 될 수 있습니다 .

설치

1
npm install bitcoinjs-lib

설정

Node.js

1
var bitcoin = require('bitcoinjs-lib')

Browser

browserify 사용 방법에 대해 잘 알고있는 경우이 단계를 무시하고 정상적으로 진행하세요. 이러한 단계는 권고 사항 일 뿐이며 귀하의 애플리케이션에 적합하지 않을 수 있습니다.

이 단계에서는 Browserify 가 설치된 것으로 가정합니다.

프로젝트의 경우 index.js파일을 만듭니다.

1 2 3 4 5 6 7 8 9 10
let bitcoin = require('bitcoinjs-lib') // your code here function myFunction () { return bitcoin.ECPair.makeRandom().toWIF() } module.exports = { myFunction }

이제 브라우저 용으로 컴파일하려면 :

1
browserify index.js --standalone foo > app.js

이제 새 비트 코인 개인 키를 만드는 데 <script src="app.js" />사용하여 웹 페이지에 넣을 수 있습니다 foo.myFunction.

참고 : 자바 스크립트를 사용해서, 당신은의 다음 변수 이름이 엉망이 존재를 배제해야 추하게 : BigInteger, ECPair, Point때문에 오리 타이핑에 사용되는 IS-기능 이름의이. Typeforce .

예:

1
uglifyjs ... --mangle reserved=['BigInteger','ECPair','Point']

참고 :이 라이브러리는 노드 LTS 기능을 추적합니다. 엄격한 ES5가 필요한 경우 단계 --transform babelify와 함께 사용하십시오 browserify( es2015사전 설정 사용).

참고 :이 라이브러리가 iOS 10 장치에서 실행될 것으로 예상되는 경우 buffer@5.0.5 이상을 사용하고 있는지 확인하십시오 .

Typescript or VSCode users

Typescript에 대한 유형 선언 ^3.0.0은 라이브러리 버전 사용할 수 있습니다.

1
npm install @types/bitcoinjs-lib

이제 bitcoinjs-libtypescript 호환 라이브러리로 사용할 수 있습니다 .

1
import { HDNode, Transaction } from 'bitcoinjs-lib'

VSCode (및 기타 편집기)의 경우 Intellisense가 해당 정보를 사용하여 코드 (자동 완성, 정적 분석)를 지원하므로 형식 선언을 설치하는 것이 좋습니다.

에서 어떤 타이프 라이터 관련 버그를보고 DefinitelyTyped 포크 @dlebrecht 에의 PR를 제출 DefinitelyTyped

Flow

흐름 유형 검사기에 대한 정의는 흐름 유형 저장소에서 사용할 수 있습니다.

리포지토리에서 직접 다운로드 하거나 흐름 유형 CLI를 사용하여 다운로드 할 수 있습니다.

1 2
# npm install -g flow-typed $ flow-typed install -f 0.27 bitcoinjs-lib@2.2.0 # 0.27 for flow version, 2.2.0 for bitcoinjs-lib version

정의는 완전하고 버전 2.2.0으로 최신 상태입니다. 정의는 @ runn1ng에 의해 유지됩니다 .

아래 예제는 통합 테스트로 구현되었으므로 이해하기 매우 쉬울 것입니다. 그렇지 않으면 pull 요청이 좋습니다. 일부 예제는 HTTPS를 통해 타사 블록 체인 공급자 (3PBP)와 상호 작용합니다.

여기에 나열 될 수 있다고 생각되는 사용 사례가 있으면 요청하십시오 !

BitcoinJS를 활용하는 프로젝트

기여

우리는 항상 풀 요청을 받아들이지 만 코딩 스타일, 테스트 주도 개발 및 커밋 메시지와 관련하여 특정 표준을 준수합니다.

사소한 수정을 줄이기 위해 기여할 때 이러한 사항을 준수하도록 최선을 다하십시오.

Running the test suite

1 2
npm test npm run-script coverage

라이브러리 보완

  • BIP21 -A BIP21 호환 URL 인코딩 라이브러리
  • BIP38- 암호로 보호 된 개인 키
  • BIP39- 결정적 키를위한 니모닉 생성
  • BIP32-Utils -BIP32 작업을위한 유틸리티 세트
  • BIP66- 엄격한 DER 서명 디코딩
  • BIP68-상대 잠금 시간 인코딩 라이브러리
  • BIP69- 트랜잭션 입력 및 출력의 언어 색인
  • Base58 -Base58 인코딩 / 디코딩
  • Base58 검사 -Base58 검사 인코딩 / 디코딩
  • Bech32 -BIP173 호환 Bech32 인코딩 라이브러리
  • coinselect -bitcoinjs-lib를위한 수수료 최적화, 거래 입력 선택 모듈.
  • merkle- lib-머클 루트 및 트리 계산을위한 성능에 민감한 라이브러리입니다.
  • minimaldata- 비트 코인 정책을 확인하는 모듈 : SCRIPT_VERIFY_MINIMALDATA

대안

라이선스 MIT