ddk-node 1.1.0

DDK node to facilitate DLC contracts.
Documentation
syntax = "proto3";
package ddkrpc;

service DdkRpc {
  rpc Info (InfoRequest) returns (InfoResponse);
  rpc SendOffer (SendOfferRequest) returns (SendOfferResponse);
  rpc AcceptOffer (AcceptOfferRequest) returns (AcceptOfferResponse);
  rpc ListOffers (ListOffersRequest) returns (ListOffersResponse);
  rpc NewAddress (NewAddressRequest) returns (NewAddressResponse);
  rpc WalletBalance (WalletBalanceRequest) returns (WalletBalanceResponse);
  rpc WalletSync (WalletSyncRequest) returns (WalletSyncResponse);
  rpc Sync (SyncRequest) returns (SyncResponse);
  rpc GetWalletTransactions (GetWalletTransactionsRequest) returns (GetWalletTransactionsResponse);
  rpc ListUtxos (ListUtxosRequest) returns (ListUtxosResponse);
  rpc ListPeers (ListPeersRequest) returns (ListPeersResponse);
  rpc ConnectPeer (ConnectRequest) returns (ConnectResponse);
  rpc ListOracles (ListOraclesRequest) returns (ListOraclesResponse);
  rpc ListContracts (ListContractsRequest) returns (ListContractsResponse);
  rpc Send (SendRequest) returns (SendResponse);
  rpc OracleAnnouncements (OracleAnnouncementsRequest) returns (OracleAnnouncementsResponse);
  rpc CreateEnum (CreateEnumRequest) returns (CreateEnumResponse);
  rpc CreateNumeric (CreateNumericRequest) returns (CreateNumericResponse);
  rpc SignAnnouncement (SignRequest) returns (SignResponse);
}

message InfoRequest {}

message InfoResponse {
  string pubkey = 1;
  string transport = 2;
  string oracle = 3;
}

message SendOfferRequest {
  bytes contract_input = 1;
  string counter_party = 2;
}

message SendOfferResponse {
  bytes offer_dlc = 1;
}

message ListOffersRequest {}

message ListOffersResponse {
  repeated bytes offers = 1;
}

message AcceptOfferRequest {
  string contract_id = 1;
}

message AcceptOfferResponse {
  string contract_id = 1;
  string counter_party = 2;
  bytes accept_dlc = 3;
}

message NewAddressRequest {}

message NewAddressResponse {
  string address = 1;
}

message WalletBalanceRequest {}

message WalletBalanceResponse {
  uint64 confirmed = 1;
  uint64 foreign_unconfirmed = 2;
  uint64 change_unconfirmed = 3;
  int64 contract_balance = 4;
}

message GetWalletTransactionsRequest {}

message GetWalletTransactionsResponse {
  repeated bytes transactions = 1;
}

message ListUtxosRequest {}

message ListUtxosResponse {
  repeated bytes utxos = 1;
}

message ListPeersRequest {}

message ListPeersResponse {
  repeated Peer peers = 1;
}

message Peer {
  string pubkey = 1;
  string host = 2;
}

message ConnectRequest {
  string pubkey = 1;
  string host = 2;
}

message ConnectResponse {}

message ListOraclesRequest {}

message ListOraclesResponse {
  string name = 1;
  string pubkey = 2;
}

message ListContractsRequest {}

message ListContractsResponse {
  repeated bytes contracts = 1;
}

message SendRequest {
  string address = 1;
  uint64 amount = 2;
  uint64 fee_rate = 3;
}

message SendResponse {
  string txid = 1;
}

message OracleAnnouncementsRequest {
  string event_id = 1;
}

message OracleAnnouncementsResponse {
  bytes announcement = 1;
}

message WalletSyncRequest {}

message WalletSyncResponse {}

message SyncRequest {}

message SyncResponse {}

message CreateEnumRequest {
  uint32 maturity = 1;
  repeated string outcomes = 2;
}

message CreateEnumResponse {
  bytes announcement = 1;
}

message CreateNumericRequest {
  uint32 maturity = 1;
  uint32 nb_digits = 2;
}

message CreateNumericResponse {
  bytes announcement = 1;
}

message SignRequest {
  string event_id = 1;
  oneof outcome {
    string enum_outcome = 2;
    int64 numeric_outcome = 3;
  }
}

message SignResponse {
  bytes signature = 1;
}