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

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_interface — 127.0.0.1, api_listen_port — 3415 (config/src/types.rs:71)

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

Те же методы 6 обслуживаются из 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.1.0, wallet 4.1.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:66

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:117
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:120
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:202
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:357
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:525
Parameters

Funded invoice slate.

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

Источник​

Далее​