멋진 커뮤니티 모듈

BitcoinJS(bitcoinjs-lib)

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

js 표준 스타일

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

특징

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

이것을 프로덕션에 사용해야 합니까?

당신이 생산이 라이브러리의 마스터 분기를 사용하여 생각하는 경우, 정지 는 우리의 개발 지점, 그리고, .Master이 안정되지 에만 태그 출시, 안정적으로 분류 될 수있다 .

설치

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

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

참고 : JavaScript는 If you, you MUST 다음 변수 이름을 맹글링 대상에서 제외해야 합니다: BigInteger, ECPair, Point이것은 덕 타이핑에 사용된 IS 기능 이름 때문 입니다.

예시:

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가 해당 정보를 사용하여 코딩(자동 완성, 정적 분석)을 하므로 사용자는 유형 선언을 설치하는 것이 좋습니다.

모든 typescript 관련 버그를 @dlebrecht SimplyTyped 포크로 보고하고 , PR을 확실히 Typed 에 제출하십시오.

Flow

Flow typechecker에 대한 정의는 플로우 유형 저장소에서 사용할 수 있습니다.

저장소에서 직접 다운로드 하거나 흐름 유형 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에 의해 유지 관리됩니다 .

아래 예제는 통합 테스트로 구현되어 매우 이해하기 쉬워야 합니다. 그렇지 않은 경우 풀 요청을 환영합니다. 일부 예제는 3PBP(3rd Party Blockchain Provider)와 (HTTPS를 통해) 상호 작용합니다.

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

BitcoinJS를 활용한 프로젝트

기여

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

사소한 수정 사항을 절약하는 데 기여할 때 이를 준수하기 위해 최선을 다하십시오.

Running the test suite

1 2
npm test npm run-script coverage

라이브러리 보완

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

대안

라이선스 MIT