Interledger (ILP) Javascript 분개장 플러그 인 인터페이스 버 전 2

39448 단어 ILP크로스 체인
Javascript 분류 플러그 인 인터페이스 버 전 2
Interledger 프로 토 콜 은 여러 개의 서로 다른 결제 시스템 을 뛰어넘어 지불 하 는 프로 토 콜 세트 입 니 다.
이 규범 은 Interledger 클 라 이언 트 와 커 넥 터 로 자 바스 크 립 트 분류 장 추상 인 터 페 이 스 를 정의 하여 서로 다른 분류 장 프로 토 콜 을 뛰어넘어 통신 과 루트 결 제 를 하 는 데 사용 된다.여기 서 정 의 된 정확 한 방법 과 사건 은 자바 스 크 립 트 가 특유 한 것 이지 만 다른 언어의 분류 장 추상 적 인 지침 으로 사용 할 수 있다.
새 분류 장 을 통 해 ILP 결 제 를 보 내 려 면 분류 장 플러그 인 을 실행 해 야 합 니 다. 이 분류 장 플러그 인 은 다음 과 같은 정 의 된 인 터 페 이 스 를 공개 합 니 다.이 는 ILP 클 라 이언 트 와 커 넥 터 와 함께 사용 할 수 있 으 며 직접 사용 할 수 있 을 것 으로 보인다.
이 규격 은 ILP 규범 에 달 려 있다.
클래스: LedgerPluginclass LedgerPlugin
방법.
 
명칭.new
LedgerPlugin(opts,api)
 
connect(options ) ⇒ Promise.
 
disconnect() ⇒ Promise.
 
isConnected() ⇒ Boolean
 
sendData(options ) ⇒ Promise.
 
sendMoney(amount ) ⇒ Promise.
 
registerDataHandler(dataHandler) ⇒ undefined
 
deregisterDataHandler() ⇒ undefined
 
registerMoneyHandler(moneyHandler) ⇒ undefined
 
deregisterMoneyHandler() ⇒ undefined
상수
 
명칭.static
판본 = 2
움직이다
명칭.
프로세서
connect ( ) ⇒
connect ( ) ⇒
error ( ) ⇒
실례 관리
새로운 Ledger Pluginnew LedgerPlugin( opts : object, api? : PluginServices )
플러그 인의 새로운 인 스 턴 스 를 만 듭 니 다. 모든 인 스 턴 스 는 서로 다른 분류 장 에 대응 합 니 다. 그러나 일부 플러그 인 은 엄격 한 일대일 관 계 를 벗 어 날 수 있 고 내부 에서 상대 의 가상 커 넥 터 를 충당 할 수 있 습 니 다.
첫 번 째 인자 opts 는 설정 대상 입 니 다. 그 모양 은 모든 플러그 인 특유 의 것 입 니 다. 플러그 인 은 보통 환경 변 수 를 통 해 설정 되 기 때문에 JSON 직렬 화 를 사용 하 는 것 을 권장 합 니 다. 단, 플러그 인 은 직렬 화 할 수 없 는 값 을 사용 하여 고급 기능 을 제공 할 수 있 습 니 다.
두 번 째 인자 opts 는 추가 환경 서 비 스 를 플러그 인 에 전달 하 는 데 사 용 됩 니 다. 예 를 들 어 기록 기 나 키 값 저장 소 등 대부분의 플러그 인 은 작 동 해 야 합 니 다. 이 인자 가 api 더 라 도 적은 기능 을 제공 할 수 있 습 니 다 (예 를 들 어 지속 성 이 없 음).undefined 구조 함수 에 부정 확 한 인자 가 부여 되면 InvalidFieldsError 던 지기 opts. 던 지기 TypeError 대상 이 아니 거나 opts 대상 이 아 닌 정 의 된 경우 api 서 비 스 를 필요 로 하지만 통과 InvalidServicesError 를 제공 하지 않 는 다.
매개 변수
명칭.
유형
묘사 하 다.
OPTS api
분류 장 관련 설정 대상 을 포함 합 니 다. 플러그 인 에 지정 한 필드 를 포함 할 수 있 습 니 다.
예.
const  ledgerPlugin  =  new  LedgerPlugin({

  // auth       

  _Store  {
     //                  
    //(  ,             ,          ID)
    //       
    put(keyvalue=> {
       //  Promise。
    },
    
    get  key => {
       //  Promise。
    },
    //       
    del  key => {
       //  Promise。
    }
  }
}) 
   
  

PluginOptions

LedgerPlugin.version

LedgerPlugin.version:Number

2 Ledger 。

LedgerPlugin#

ledgerPlugin.connect( options:ConnectOptions ⇒ Promise.

options  。

connectconnectdisconnect

InvalidFieldsErrorNotAcceptedErrorTypeError options.timeout Number

LedgerPlugin#

ledgerPlugin.disconnect() ⇒ Promise.

LedgerPlugin#isConnected

ledgerPlugin.isConnected() ⇒ Boolean

: connect

ledgerPlugin.on('connect', () ⇒ )

: disconnect

ledgerPlugin.on('disconnect', () ⇒ )

: error

ledgerPlugin.on('error', ( err:Error ) ⇒ )

, 。

LedgerPlugin#

ledgerPlugin.sendData( data:Buffer ) ⇒ Promise.

, 。 a ,Buffer a Buffer

Buffer

Promise.  , 。

JavaScript 。

const  responseBuffer  =     psendData(requestBuffer)

LedgerPlugin#sendMoney PluginOptions ledgerPlugin.sendMoney( amount:string ) ⇒ Promise. 주인 측 에서 온 자금 단 위 를 계좌 의 거래 자로 이전 한다.
모든 플러그 인 은 하나의 최대 값 범위 내 에서 의 수량 을 지원 해 야 합 니 다.
접수 하 다.
LedgerPlugin#registerDataHandler amount
준 비 된 패 킷 을 처리 하기 위 한 리 셋 을 설정 합 니 다. 이 리 셋 은 하나의 인자 (데 이 터 는 Buffer) 를 기대 하고 패 킷 에 응답 하 겠 다 는 약속 (예: 버퍼) 을 되 돌려 야 합 니 다. 오류 가 발생 하면 리 셋 에 이상 이 생 길 수 있 습 니 다. 일반적으로 리 셋 행 위 는 ledgerPlugin.registerDataHandler( dataHandler: ( data: Buffer ) ⇒ Promise ) ⇒ undefined 그래 야 합 니 다.
데이터 처리 프로그램 이 설정 되 어 있 으 면 이 방법 은 sendData 을 일 으 킬 것 입 니 다. 데이터 처리 프로그램 을 변경 하기 위해 서 는 오래된 처리 프로그램 DataHandlerAlreadyRegisteredError 을 삭제 해 야 합 니 다. 처리 프로그램 이 예상 치 못 하 게 덮어 쓰 이지 않도록 하기 위해 서 입 니 다.
플러그 인 이 패 킷 을 받 았 지만 등록 처리 프로그램 이 없 으 면 플러그 인 은 응답 하고 오 류 를 표시 해 야 합 니 다.
LedgerPlugin#deregisterDataHandler deregisterDataHandler
현재 사용 하고 있 는 데이터 처리 프로그램 을 삭제 합 니 다. 이것 은 ledgerPlugin.deregisterDataHandler( ) ⇒ undefined 호출 되 지 않 은 효과 와 같 습 니 다.
현재 데이터 처리 프로그램 이 설정 되 어 있 지 않 으 면 이 방법 은 어떠한 조작 도 하지 않 습 니 다.
LedgerPlugin#registerMoneyHandler registerDataHandler
화폐 에 들 어 오 는 호출 을 처리 할 때 설정 합 니 다. 리 셋 은 하나의 인자 (금액) 를 기대 하고 약속 을 되 돌려 야 합 니 다. 오류 가 발생 하면 리 셋 이 이상 을 일 으 킬 수 있 습 니 다. 일반적으로 리 셋 행 위 는 ledgerPlugin.registerMoneyHandler( moneyHandler: ( amount: string ) ⇒ Promise ) ⇒ undefined 그래 야 합 니 다.
돈 처리 프로그램 이 설정 되 어 있 으 면 이 방법 은 하나 sendMoney 를 던 집 니 다. 돈 처리 프로그램 을 바 꾸 기 위해 서 는 기 존 처리 프로그램 MoneyHandlerAlreadyRegisteredError 을 삭제 해 야 합 니 다. 처리 프로그램 이 예상 치 못 하 게 덮어 쓰 이지 않도록 하기 위해 서 입 니 다.
들 어 오 는 자금 이 플러그 인 에 의 해 받 아들 여지 지만 등록 처리 프로그램 이 없 으 면 플러그 인 은 오 류 를 되 돌려 야 합 니 다 (자금 을 되 돌려 줄 수 있 습 니 다).
LedgerPlugin#deregisterMoneyHandler deregisterMoneyHandler
현재 사용 하고 있 는 돈 처리 프로그램 을 삭제 합 니 다. 이것 은 ledgerPlugin.deregisterMoneyHandler( ) ⇒ undefined 호출 되 지 않 은 효과 와 같 습 니 다.
현재 화폐 처리 프로그램 이 설정 되 어 있 지 않 으 면 이 방법 은 효과 가 없다.
클래스: 플러그 인 서비스registerMoneyHandler class PluginServices  플러그 인 이 실례 화 되 었 을 때 플러그 인 서 비 스 는 구조 함수 에 선택적으로 전 달 됩 니 다. 호스트 환경 에 따라 다 르 거나 사용 할 수 없 는 서 비 스 를 제공 할 수 있 습 니 다.
특수 영역
유형
명칭.
묘사 하 다.LedgerPlugin
상점.
간단 한 키 저장 대상Object
로그
간단 한 기록 장치 대상
필드
PluginServices # 가게Object
호스트 의 지구 층 에 반전 갈 고 리 를 제공 합 니 다.
대부분의 플러그 인 은 작업 (더 높 은 신뢰 도 나 강등 경험 이 있 을 수 있 습 니 다) 해 야 합 니 다. store:Object 하지만 플러그 인 이 저장 되 지 않 은 상태 에서 실행 되 지 않 고 플러그 인 을 제공 하지 않 으 면 구조 함수 가 하나 store 를 던 져 야 합 니 다.
방법 이름 은 유행 하 는 LevelUP / LevelDOWN 패 키 지 를 기반 으로 합 니 다.
예.
{
   //         key 
  put keyvalue=> {
     //  Promise。
  },
  //   
  get  key => {
     //  Promise。
  },
  //       
  del  key => {
     //  Promise。
  }
} 
   
  

PluginServices#

log:Object

, 。

printf

%O
%o
%s
%d ( )。
%j JSON。 , '[Circular]'。
%% ('%')。

{
   //         
  debug message... params=> {}
   //                 
  info message... params=> {}
   //               
  warnmessage... params=> {}
   //       
  errormessage... params=> {}
}

클래스: 연결 옵션InvalidServicesError
필드
유형
명칭.
묘사 하 다.class ConnectOptions
시간 이 되다
클 라 이언 트 는 연결 을 시도 하기 전의 시간 을 포기 해 야 합 니 다 (밀리초 단위)
필드
ConnectOptions # 시간 초과Number
포기 하기 전에 플러그 인 은 연결 의 밀리초 수 를 시도 해 야 합 니 다.
오류 가 발생 하면 플러그 인 을 사용 하 는 기본 시간 이 초과 되 었 습 니 다. timeout:Number 시간 이 초과 되 지 않 았 다 면.
잘못
LPI 에서 정의 하 는 여러 가지 방법 으로 오 류 를 던 집 니 다. 다른 사람들 은 오 류 를 가지 고 돌아 오 겠 다 는 약속 을 거절 할 수 있 습 니 다. 이 두 가지 상황 에서 이 오 류 는 자바 스 크 립 트 에서 파생 되 어야 합 니 다 Infinity. 그리고 Error.prototype 필드 를 문자열 로 설정 해 야 합 니 다. 예:
   InvalidFieldsError  ){
     this   =  ' InvalidFieldsError '
      message  =(message ||  ' '
}
InvalidFieldsError   =      

좋은 웹페이지 즐겨찾기