멋진 커뮤니티 모듈

BitcoinJS (bitcoinjs-lib)

빌드 상태 NPM 다음 커밋 팁

js 표준 스타일

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

특징

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

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

프로덕션 환경에서이 라이브러리의 마스터 분기를 사용하려는 경우 중지하십시오 . 마스터는 안정적이지 않습니다. 개발 분기이므로 태그가 지정된 릴리스 만 안정적인 것으로 분류 될 수 있습니다 .

설치

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

이제 foo.myFunction 을 사용하여 <script src="app.js" /> 를 새 Bitcoin 개인 키를 만들 수 있습니다.

참고 : 자바 스크립트를 수정하면 BigInteger , ECPair , Point 변수가 맹 글링되지 않도록 제외해야합니다. ECPair 에 사용 된 function-name-duck-typing 때문 입니다.

예 :

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

참고 : 엄격한 ES5이 필요하면 노드 LTS 도서관, 특징이 트랙은, 사용 --transform babelify 당신과 함께 browserify 단계 (A 사용하여 es2015 PRESET).

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

Typescript or VSCode users

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

1
npm install @types/bitcoinjs-lib

이제 bitcoinjs-lib 를 타입 스크립트 호환 라이브러리로 사용할 수 있습니다.

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에 의해 유지됩니다.

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

유스 케이스가 여기에 나열되어 있다고 생각되면 요청하십시오 !

BitcoinJS를 활용 한 프로젝트

기여

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

사소한 수정을 절약 할 수 있도록 최선을 다해 이러한 사항을 준수하십시오.

Running the test suite

1 2
npm test npm run-script coverage

라이브러리 보완

  • BIP21 -BIP21 호환 URL 인코딩 라이브러리
  • 암호 로 보호 된 개인 키
  • 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