Перейти к основному содержимому

Wallet Foreign API

Foreign API — это сторона кошелька, которую вызывают другие участники. Отправитель публикует слейт (slate) на этот эндпоинт и получает обратно частично подписанный слейт, инвойс плательщика возвращается финализированным, а майнинговый узел запрашивает у него сборку выхода (output) coinbase, который зачисляет средства в этот кошелёк.

  • Эндпоинт: http://127.0.0.1:3415/v2/foreign, запускается с помощью epic-wallet listen
  • Протокол: JSON-RPC 2.0 поверх HTTP POST
  • Учётные данные: отсутствуют
  • Привязка по умолчанию: api_listen_interface127.0.0.1, api_listen_port3415 (config/src/types.rs:71)

Учётные данные здесь невозможны, поскольку контрагент, завершающий перевод, — незнакомец, которому должен быть открыт доступ к поверхности. Привязка по умолчанию — loopback, поэтому контрагенту, обращающемуся к этому кошельку по HTTP, необходимо расширить интерфейс или установить перед ним обратный прокси; ограничить доступ можно только на уровне того, что стоит перед кошельком. Приём через epicbox релей не требует открытого входящего порта вообще.

Те же шесть методов обслуживаются из owner listener, когда owner_api_include_foreign равно true (controller/src/controller.rs:151).

Endpoint
http://127.0.0.1:3415/v2/foreign
Credential
None. This is what a counterparty pays you through
Methods here
6
Documented against
node 4.0.3, wallet 4.0.0

check_version

Read only

Report the Foreign API and supported slate versions.

Surface
/v2/foreign on port 3415
Parameters
none
Declared in
api/src/foreign_rpc.rs:65

This method takes no parameters.

6 lines
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "check_version",
  "params": []
}
Response
N/A

build_coinbase

Changes state

Build a coinbase output and kernel for a candidate block.

Surface
/v2/foreign on port 3415
Parameters
1 positional
Declared in
api/src/foreign_rpc.rs:116
Parameters

Candidate block fees, height and optional key id.

12 lines
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "build_coinbase",
  "params": [
    {
      "fees": 0,
      "height": 1,
      "key_id": null
    }
  ]
}
Response
N/A

build_foundation

Changes state

Build the foundation output and kernel for a candidate block.

Surface
/v2/foreign on port 3415
Parameters
1 positional
Declared in
api/src/foreign_rpc.rs:119
Parameters

Candidate block fees, height and optional key id.

12 lines
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "build_foundation",
  "params": [
    {
      "fees": 0,
      "height": 1,
      "key_id": null
    }
  ]
}
Response
N/A

Verify message signatures attached to a slate.

Surface
/v2/foreign on port 3415
Parameters
1 positional
Declared in
api/src/foreign_rpc.rs:201
Parameters

Slate containing participant messages.

8 lines
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "verify_slate_messages",
  "params": [
    {}
  ]
}
Response
N/A

receive_tx

Changes state

Add the listener wallet output and signature to an incoming slate.

Surface
/v2/foreign on port 3415
Parameters
4 positional
Declared in
api/src/foreign_rpc.rs:359
Parameters

Incoming slate.

Account to receive into.

Recipient message.

Sender address.

11 lines
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "receive_tx",
  "params": [
    {},
    null,
    null,
    null
  ]
}
Response
N/A

finalize_invoice_tx

Changes state

Finalize an invoice slate after the payer has funded it.

Surface
/v2/foreign on port 3415
Parameters
1 positional
Declared in
api/src/foreign_rpc.rs:532
Parameters

Funded invoice slate.

8 lines
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "finalize_invoice_tx",
  "params": [
    {}
  ]
}
Response
N/A

Источник

Далее