mirror of
https://github.com/haveno-dex/haveno-ts.git
synced 2024-12-27 00:09:40 -05:00
2443 lines
67 KiB
Protocol Buffer
2443 lines
67 KiB
Protocol Buffer
syntax = "proto3";
|
|
package io.bisq.protobuffer;
|
|
|
|
//
|
|
// Protobuffer v3 definitions of network messages and persisted objects.
|
|
//
|
|
|
|
|
|
option java_package = "protobuf";
|
|
option java_multiple_files = true;
|
|
///////////////////////////////////////////////////////////////////////////////////////////
|
|
// Network messages
|
|
///////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Those are messages sent over wire
|
|
message NetworkEnvelope {
|
|
int32 message_version = 1;
|
|
oneof message {
|
|
PreliminaryGetDataRequest preliminary_get_data_request = 2;
|
|
GetDataResponse get_data_response = 3;
|
|
GetUpdatedDataRequest get_updated_data_request = 4;
|
|
|
|
GetPeersRequest get_peers_request = 5;
|
|
GetPeersResponse get_peers_response = 6;
|
|
Ping ping = 7;
|
|
Pong pong = 8;
|
|
|
|
OfferAvailabilityRequest offer_availability_request = 9;
|
|
OfferAvailabilityResponse offer_availability_response = 10;
|
|
RefreshOfferMessage refresh_offer_message = 11;
|
|
|
|
AddDataMessage add_data_message = 12;
|
|
RemoveDataMessage remove_data_message = 13;
|
|
RemoveMailboxDataMessage remove_mailbox_data_message = 14;
|
|
|
|
CloseConnectionMessage close_connection_message = 15;
|
|
PrefixedSealedAndSignedMessage prefixed_sealed_and_signed_message = 16;
|
|
|
|
InputsForDepositTxRequest inputs_for_deposit_tx_request = 17;
|
|
InputsForDepositTxResponse inputs_for_deposit_tx_response = 18;
|
|
DepositTxMessage deposit_tx_message = 19;
|
|
CounterCurrencyTransferStartedMessage counter_currency_transfer_started_message = 20;
|
|
PayoutTxPublishedMessage payout_tx_published_message = 21;
|
|
|
|
OpenNewDisputeMessage open_new_dispute_message = 22;
|
|
PeerOpenedDisputeMessage peer_opened_dispute_message = 23;
|
|
ChatMessage chat_message = 24;
|
|
DisputeResultMessage dispute_result_message = 25;
|
|
PeerPublishedDisputePayoutTxMessage peer_published_dispute_payout_tx_message = 26;
|
|
|
|
PrivateNotificationMessage private_notification_message = 27;
|
|
|
|
GetBlocksRequest get_blocks_request = 28;
|
|
GetBlocksResponse get_blocks_response = 29;
|
|
NewBlockBroadcastMessage new_block_broadcast_message = 30;
|
|
|
|
AddPersistableNetworkPayloadMessage add_persistable_network_payload_message = 31;
|
|
AckMessage ack_message = 32;
|
|
RepublishGovernanceDataRequest republish_governance_data_request = 33;
|
|
NewDaoStateHashMessage new_dao_state_hash_message = 34;
|
|
GetDaoStateHashesRequest get_dao_state_hashes_request = 35;
|
|
GetDaoStateHashesResponse get_dao_state_hashes_response = 36;
|
|
NewProposalStateHashMessage new_proposal_state_hash_message = 37;
|
|
GetProposalStateHashesRequest get_proposal_state_hashes_request = 38;
|
|
GetProposalStateHashesResponse get_proposal_state_hashes_response = 39;
|
|
NewBlindVoteStateHashMessage new_blind_vote_state_hash_message = 40;
|
|
GetBlindVoteStateHashesRequest get_blind_vote_state_hashes_request = 41;
|
|
GetBlindVoteStateHashesResponse get_blind_vote_state_hashes_response = 42;
|
|
|
|
BundleOfEnvelopes bundle_of_envelopes = 43;
|
|
MediatedPayoutTxSignatureMessage mediated_payout_tx_signature_message = 44;
|
|
MediatedPayoutTxPublishedMessage mediated_payout_tx_published_message = 45;
|
|
|
|
DelayedPayoutTxSignatureRequest delayed_payout_tx_signature_request = 46;
|
|
DelayedPayoutTxSignatureResponse delayed_payout_tx_signature_response = 47;
|
|
DepositTxAndDelayedPayoutTxMessage deposit_tx_and_delayed_payout_tx_message = 48;
|
|
PeerPublishedDelayedPayoutTxMessage peer_published_delayed_payout_tx_message = 49;
|
|
|
|
RefreshTradeStateRequest refresh_trade_state_request = 50 [deprecated = true];
|
|
TraderSignedWitnessMessage trader_signed_witness_message = 51 [deprecated = true];
|
|
|
|
GetInventoryRequest get_inventory_request = 52;
|
|
GetInventoryResponse get_inventory_response = 53;
|
|
|
|
SignOfferRequest sign_offer_request = 1001;
|
|
SignOfferResponse sign_offer_response = 1002;
|
|
InitTradeRequest init_trade_request = 1003;
|
|
InitMultisigRequest init_multisig_request = 1004;
|
|
SignContractRequest sign_contract_request = 1005;
|
|
SignContractResponse sign_contract_response = 1006;
|
|
DepositRequest deposit_request = 1007;
|
|
DepositResponse deposit_response = 1008;
|
|
PaymentAccountPayloadRequest payment_account_payload_request = 1009;
|
|
UpdateMultisigRequest update_multisig_request = 1010;
|
|
UpdateMultisigResponse update_multisig_response = 1011;
|
|
ArbitratorPayoutTxRequest arbitrator_payout_tx_request = 1012;
|
|
ArbitratorPayoutTxResponse arbitrator_payout_tx_response = 1013;
|
|
}
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////
|
|
// Implementations of NetworkEnvelope
|
|
///////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
message BundleOfEnvelopes {
|
|
repeated NetworkEnvelope envelopes = 1;
|
|
}
|
|
|
|
// get data
|
|
|
|
message PreliminaryGetDataRequest {
|
|
int32 nonce = 21; // This was set to 21 instead of 1 in some old commit so we cannot change it.
|
|
repeated bytes excluded_keys = 2;
|
|
repeated int32 supported_capabilities = 3;
|
|
string version = 4;
|
|
}
|
|
|
|
message GetDataResponse {
|
|
int32 request_nonce = 1;
|
|
bool is_get_updated_data_response = 2;
|
|
repeated StorageEntryWrapper data_set = 3;
|
|
repeated int32 supported_capabilities = 4;
|
|
repeated PersistableNetworkPayload persistable_network_payload_items = 5;
|
|
}
|
|
|
|
message GetUpdatedDataRequest {
|
|
NodeAddress sender_node_address = 1;
|
|
int32 nonce = 2;
|
|
repeated bytes excluded_keys = 3;
|
|
string version = 4;
|
|
}
|
|
|
|
// peers
|
|
|
|
message GetPeersRequest {
|
|
NodeAddress sender_node_address = 1;
|
|
int32 nonce = 2;
|
|
repeated int32 supported_capabilities = 3;
|
|
repeated Peer reported_peers = 4;
|
|
}
|
|
|
|
message GetPeersResponse {
|
|
int32 request_nonce = 1;
|
|
repeated Peer reported_peers = 2;
|
|
repeated int32 supported_capabilities = 3;
|
|
}
|
|
|
|
message Ping {
|
|
int32 nonce = 1;
|
|
int32 last_round_trip_time = 2;
|
|
}
|
|
|
|
message Pong {
|
|
int32 request_nonce = 1;
|
|
}
|
|
|
|
// Inventory
|
|
|
|
message GetInventoryRequest {
|
|
string version = 1;
|
|
}
|
|
|
|
message GetInventoryResponse {
|
|
map<string, string> inventory = 1;
|
|
}
|
|
|
|
// offer
|
|
|
|
message SignOfferRequest {
|
|
string offer_id = 1;
|
|
NodeAddress sender_node_address = 2;
|
|
PubKeyRing pub_key_ring = 3;
|
|
string sender_account_id = 4;
|
|
OfferPayload offer_payload = 5;
|
|
string uid = 6;
|
|
int64 current_date = 7;
|
|
string reserve_tx_hash = 8;
|
|
string reserve_tx_hex = 9;
|
|
string reserve_tx_key = 10;
|
|
string payout_address = 11;
|
|
}
|
|
|
|
message SignOfferResponse {
|
|
string offer_id = 1;
|
|
string uid = 2;
|
|
OfferPayload signed_offer_payload = 3;
|
|
}
|
|
|
|
message OfferAvailabilityRequest {
|
|
string offer_id = 1;
|
|
PubKeyRing pub_key_ring = 2;
|
|
int64 takers_trade_price = 3;
|
|
repeated int32 supported_capabilities = 4;
|
|
string uid = 5;
|
|
bool is_taker_api_user = 6;
|
|
InitTradeRequest trade_request = 7;
|
|
}
|
|
|
|
message OfferAvailabilityResponse {
|
|
string offer_id = 1;
|
|
AvailabilityResult availability_result = 2;
|
|
repeated int32 supported_capabilities = 3;
|
|
string uid = 4;
|
|
string maker_signature = 5;
|
|
NodeAddress arbitrator_node_address = 6;
|
|
}
|
|
|
|
message RefreshOfferMessage {
|
|
bytes hash_of_data_and_seq_nr = 1;
|
|
bytes signature = 2;
|
|
bytes hash_of_payload = 3;
|
|
int32 sequence_number = 4;
|
|
}
|
|
|
|
// storage
|
|
|
|
message AddDataMessage {
|
|
StorageEntryWrapper entry = 1;
|
|
}
|
|
|
|
message RemoveDataMessage {
|
|
ProtectedStorageEntry protected_storage_entry = 1;
|
|
}
|
|
|
|
message RemoveMailboxDataMessage {
|
|
ProtectedMailboxStorageEntry protected_storage_entry = 1;
|
|
}
|
|
|
|
message AddPersistableNetworkPayloadMessage {
|
|
PersistableNetworkPayload payload = 1;
|
|
}
|
|
|
|
// misc
|
|
|
|
message CloseConnectionMessage {
|
|
string reason = 1;
|
|
}
|
|
|
|
message AckMessage {
|
|
string uid = 1;
|
|
NodeAddress sender_node_address = 2;
|
|
string source_type = 3; // enum name. e.g. TradeMessage, DisputeMessage,...
|
|
string source_msg_class_name = 4;
|
|
string source_uid = 5; // uid of source (TradeMessage)
|
|
string source_id = 6; // id of source (tradeId, disputeId)
|
|
bool success = 7; // true if source message was processed successfully
|
|
string error_message = 8; // optional error message if source message processing failed
|
|
}
|
|
|
|
message PrefixedSealedAndSignedMessage {
|
|
NodeAddress node_address = 1;
|
|
SealedAndSigned sealed_and_signed = 2;
|
|
bytes address_prefix_hash = 3;
|
|
string uid = 4;
|
|
}
|
|
|
|
// trade
|
|
|
|
message InputsForDepositTxRequest {
|
|
string trade_id = 1;
|
|
NodeAddress sender_node_address = 2;
|
|
int64 trade_amount = 3;
|
|
int64 trade_price = 4;
|
|
int64 tx_fee = 5;
|
|
int64 taker_fee = 6;
|
|
bool is_currency_for_taker_fee_btc = 7;
|
|
repeated RawTransactionInput raw_transaction_inputs = 8;
|
|
int64 change_output_value = 9;
|
|
string change_output_address = 10;
|
|
bytes taker_multi_sig_pub_key = 11;
|
|
string taker_payout_address_string = 12;
|
|
PubKeyRing taker_pub_key_ring = 13;
|
|
PaymentAccountPayload taker_payment_account_payload = 14;
|
|
string taker_account_id = 15;
|
|
string taker_fee_tx_id = 16;
|
|
repeated NodeAddress accepted_arbitrator_node_addresses = 17;
|
|
repeated NodeAddress accepted_mediator_node_addresses = 18;
|
|
NodeAddress arbitrator_node_address = 19;
|
|
NodeAddress mediator_node_address = 20;
|
|
string uid = 21;
|
|
bytes account_age_witness_signature_of_offer_id = 22;
|
|
int64 current_date = 23;
|
|
repeated NodeAddress accepted_refund_agent_node_addresses = 24;
|
|
NodeAddress refund_agent_node_address = 25;
|
|
}
|
|
|
|
message InputsForDepositTxResponse {
|
|
string trade_id = 1;
|
|
PaymentAccountPayload maker_payment_account_payload = 2;
|
|
string maker_account_id = 3;
|
|
string maker_contract_as_json = 4;
|
|
string maker_contract_signature = 5;
|
|
string maker_payout_address_string = 6;
|
|
bytes prepared_deposit_tx = 7;
|
|
repeated RawTransactionInput maker_inputs = 8;
|
|
bytes maker_multi_sig_pub_key = 9;
|
|
NodeAddress sender_node_address = 10;
|
|
string uid = 11;
|
|
bytes account_age_witness_signature_of_prepared_deposit_tx = 12;
|
|
int64 current_date = 13;
|
|
int64 lock_time = 14;
|
|
}
|
|
|
|
message InitTradeRequest {
|
|
string trade_id = 1;
|
|
NodeAddress sender_node_address = 2;
|
|
PubKeyRing pub_key_ring = 3;
|
|
int64 trade_amount = 4;
|
|
int64 trade_price = 5;
|
|
int64 trade_fee = 6;
|
|
string account_id = 7;
|
|
string payment_account_id = 8;
|
|
string payment_method_id = 9;
|
|
string uid = 10;
|
|
bytes account_age_witness_signature_of_offer_id = 11;
|
|
int64 current_date = 12;
|
|
NodeAddress maker_node_address = 13;
|
|
NodeAddress taker_node_address = 14;
|
|
NodeAddress arbitrator_node_address = 15;
|
|
string reserve_tx_hash = 16;
|
|
string reserve_tx_hex = 17;
|
|
string reserve_tx_key = 18;
|
|
string payout_address = 19;
|
|
string maker_signature = 20;
|
|
}
|
|
|
|
message InitMultisigRequest {
|
|
string trade_id = 1;
|
|
NodeAddress sender_node_address = 2;
|
|
PubKeyRing pub_key_ring = 3;
|
|
string uid = 4;
|
|
int64 current_date = 5;
|
|
string prepared_multisig_hex = 6;
|
|
string made_multisig_hex = 7;
|
|
}
|
|
|
|
message SignContractRequest {
|
|
string trade_id = 1;
|
|
NodeAddress sender_node_address = 2;
|
|
PubKeyRing pub_key_ring = 3;
|
|
string uid = 4;
|
|
int64 current_date = 5;
|
|
string account_id = 6;
|
|
bytes payment_account_payload_hash = 7;
|
|
string payout_address = 8;;
|
|
string deposit_tx_hash = 9;
|
|
}
|
|
|
|
message SignContractResponse {
|
|
string trade_id = 1;
|
|
NodeAddress sender_node_address = 2;
|
|
PubKeyRing pub_key_ring = 3;
|
|
string uid = 4;
|
|
int64 current_date = 5;
|
|
string contract_signature = 6;
|
|
}
|
|
|
|
message DepositRequest {
|
|
string trade_id = 1;
|
|
NodeAddress sender_node_address = 2;
|
|
PubKeyRing pub_key_ring = 3;
|
|
string uid = 4;
|
|
int64 current_date = 5;
|
|
string contract_signature = 6;
|
|
string deposit_tx_hex = 7;
|
|
string deposit_tx_key = 8;
|
|
}
|
|
|
|
message DepositResponse {
|
|
string trade_id = 1;
|
|
NodeAddress sender_node_address = 2;
|
|
PubKeyRing pub_key_ring = 3;
|
|
string uid = 4;
|
|
int64 current_date = 5;
|
|
}
|
|
|
|
message PaymentAccountPayloadRequest {
|
|
string trade_id = 1;
|
|
NodeAddress sender_node_address = 2;
|
|
PubKeyRing pub_key_ring = 3;
|
|
string uid = 4;
|
|
int64 current_date = 5;
|
|
PaymentAccountPayload payment_account_payload = 6;
|
|
}
|
|
|
|
message UpdateMultisigRequest {
|
|
string trade_id = 1;
|
|
NodeAddress sender_node_address = 2;
|
|
PubKeyRing pub_key_ring = 3;
|
|
string uid = 4;
|
|
int64 current_date = 5;
|
|
string updated_multisig_hex = 6;
|
|
}
|
|
|
|
message UpdateMultisigResponse {
|
|
string trade_id = 1;
|
|
NodeAddress sender_node_address = 2;
|
|
PubKeyRing pub_key_ring = 3;
|
|
string uid = 4;
|
|
int64 current_date = 5;
|
|
string updated_multisig_hex = 6;
|
|
}
|
|
|
|
message DelayedPayoutTxSignatureRequest {
|
|
string uid = 1;
|
|
string trade_id = 2;
|
|
NodeAddress sender_node_address = 3;
|
|
bytes delayed_payout_tx = 4;
|
|
bytes delayed_payout_tx_seller_signature = 5;
|
|
}
|
|
|
|
message DelayedPayoutTxSignatureResponse {
|
|
string uid = 1;
|
|
string trade_id = 2;
|
|
NodeAddress sender_node_address = 3;
|
|
bytes delayed_payout_tx_buyer_signature = 4;
|
|
bytes deposit_tx = 5;
|
|
}
|
|
|
|
message DepositTxAndDelayedPayoutTxMessage {
|
|
string uid = 1;
|
|
string trade_id = 2;
|
|
NodeAddress sender_node_address = 3;
|
|
bytes deposit_tx = 4;
|
|
bytes delayed_payout_tx = 5;
|
|
}
|
|
|
|
message DepositTxMessage {
|
|
string uid = 1;
|
|
string trade_id = 2;
|
|
NodeAddress sender_node_address = 3;
|
|
bytes deposit_tx_without_witnesses = 4;
|
|
PubKeyRing pub_key_ring = 100;
|
|
reserved 5; // WAS: bytes deposit_tx = 101;
|
|
string trade_fee_tx_id = 102;
|
|
string deposit_tx_id = 103;
|
|
}
|
|
|
|
message PeerPublishedDelayedPayoutTxMessage {
|
|
string uid = 1;
|
|
string trade_id = 2;
|
|
NodeAddress sender_node_address = 3;
|
|
}
|
|
|
|
message CounterCurrencyTransferStartedMessage {
|
|
string trade_id = 1;
|
|
string buyer_payout_address = 2;
|
|
NodeAddress sender_node_address = 3;
|
|
string buyer_payout_tx_signed = 4;
|
|
string counter_currency_tx_id = 5;
|
|
string uid = 6;
|
|
string counter_currency_extra_data = 7;
|
|
}
|
|
|
|
message FinalizePayoutTxRequest {
|
|
string trade_id = 1;
|
|
bytes seller_signature = 2;
|
|
string seller_payout_address = 3;
|
|
NodeAddress sender_node_address = 4;
|
|
string uid = 5;
|
|
}
|
|
|
|
message ArbitratorPayoutTxRequest {
|
|
Dispute dispute = 1; // TODO (woodser): replace with trade id
|
|
NodeAddress sender_node_address = 2;
|
|
string uid = 3;
|
|
SupportType type = 4;
|
|
string updated_multisig_hex = 5;
|
|
}
|
|
|
|
message ArbitratorPayoutTxResponse {
|
|
string trade_id = 1;
|
|
NodeAddress sender_node_address = 2;
|
|
string uid = 3;
|
|
SupportType type = 4;
|
|
string arbitrator_signed_payout_tx_hex = 5;
|
|
}
|
|
|
|
message PayoutTxPublishedMessage {
|
|
string trade_id = 1;
|
|
string signed_multisig_tx_hex = 2;
|
|
NodeAddress sender_node_address = 3;
|
|
string uid = 4;
|
|
SignedWitness signed_witness = 5; // Added in v1.4.0
|
|
}
|
|
|
|
message MediatedPayoutTxPublishedMessage {
|
|
string trade_id = 1;
|
|
bytes payout_tx = 2;
|
|
NodeAddress sender_node_address = 3;
|
|
string uid = 4;
|
|
}
|
|
|
|
message MediatedPayoutTxSignatureMessage {
|
|
string uid = 1;
|
|
string trade_id = 3;
|
|
bytes tx_signature = 2;
|
|
NodeAddress sender_node_address = 4;
|
|
}
|
|
|
|
// Deprecated since 1.4.0
|
|
message RefreshTradeStateRequest {
|
|
string uid = 1 [deprecated = true];
|
|
string trade_id = 2 [deprecated = true];
|
|
NodeAddress sender_node_address = 3 [deprecated = true];
|
|
}
|
|
|
|
// Deprecated since 1.4.0
|
|
message TraderSignedWitnessMessage {
|
|
string uid = 1 [deprecated = true];
|
|
string trade_id = 2 [deprecated = true];
|
|
NodeAddress sender_node_address = 3 [deprecated = true];
|
|
SignedWitness signed_witness = 4 [deprecated = true];
|
|
}
|
|
|
|
// dispute
|
|
|
|
enum SupportType {
|
|
ARBITRATION = 0;
|
|
MEDIATION = 1;
|
|
TRADE = 2;
|
|
REFUND = 3;
|
|
}
|
|
|
|
message OpenNewDisputeMessage {
|
|
Dispute dispute = 1;
|
|
NodeAddress sender_node_address = 2;
|
|
string uid = 3;
|
|
SupportType type = 4;
|
|
string updated_multisig_hex = 5;
|
|
}
|
|
|
|
message PeerOpenedDisputeMessage {
|
|
Dispute dispute = 1;
|
|
NodeAddress sender_node_address = 2;
|
|
string uid = 3;
|
|
SupportType type = 4;
|
|
}
|
|
|
|
message ChatMessage {
|
|
int64 date = 1;
|
|
string trade_id = 2;
|
|
int32 trader_id = 3;
|
|
bool sender_is_trader = 4;
|
|
string message = 5;
|
|
repeated Attachment attachments = 6;
|
|
bool arrived = 7;
|
|
bool stored_in_mailbox = 8;
|
|
bool is_system_message = 9;
|
|
NodeAddress sender_node_address = 10;
|
|
string uid = 11;
|
|
string send_message_error = 12;
|
|
bool acknowledged = 13;
|
|
string ack_error = 14;
|
|
SupportType type = 15;
|
|
bool was_displayed = 16;
|
|
}
|
|
|
|
message DisputeResultMessage {
|
|
string uid = 1;
|
|
DisputeResult dispute_result = 2;
|
|
NodeAddress sender_node_address = 3;
|
|
SupportType type = 4;
|
|
}
|
|
|
|
message PeerPublishedDisputePayoutTxMessage {
|
|
string uid = 1;
|
|
reserved 2; // was bytes transaction = 2;
|
|
string trade_id = 3;
|
|
NodeAddress sender_node_address = 4;
|
|
SupportType type = 5;
|
|
string updated_multisig_hex = 6;
|
|
string payout_tx_hex = 7;
|
|
}
|
|
|
|
message PrivateNotificationMessage {
|
|
string uid = 1;
|
|
NodeAddress sender_node_address = 2;
|
|
PrivateNotificationPayload private_notification_payload = 3;
|
|
}
|
|
|
|
// DAO
|
|
|
|
message GetBlocksRequest {
|
|
int32 from_block_height = 1;
|
|
int32 nonce = 2;
|
|
NodeAddress sender_node_address = 3;
|
|
repeated int32 supported_capabilities = 4;
|
|
}
|
|
|
|
message GetBlocksResponse {
|
|
// Because of the way how PB implements inheritance we need to use the super class as type
|
|
repeated BaseBlock raw_blocks = 1;
|
|
int32 request_nonce = 2;
|
|
}
|
|
|
|
message NewBlockBroadcastMessage {
|
|
// Because of the way how PB implements inheritance we need to use the super class as type
|
|
BaseBlock raw_block = 1;
|
|
}
|
|
|
|
message RepublishGovernanceDataRequest {
|
|
}
|
|
|
|
message NewDaoStateHashMessage {
|
|
DaoStateHash state_hash = 1;
|
|
}
|
|
|
|
message NewProposalStateHashMessage {
|
|
ProposalStateHash state_hash = 1;
|
|
}
|
|
|
|
message NewBlindVoteStateHashMessage {
|
|
BlindVoteStateHash state_hash = 1;
|
|
}
|
|
|
|
message GetDaoStateHashesRequest {
|
|
int32 height = 1;
|
|
int32 nonce = 2;
|
|
}
|
|
|
|
message GetProposalStateHashesRequest {
|
|
int32 height = 1;
|
|
int32 nonce = 2;
|
|
}
|
|
|
|
message GetBlindVoteStateHashesRequest {
|
|
int32 height = 1;
|
|
int32 nonce = 2;
|
|
}
|
|
|
|
message GetDaoStateHashesResponse {
|
|
repeated DaoStateHash state_hashes = 1;
|
|
int32 request_nonce = 2;
|
|
}
|
|
|
|
message GetProposalStateHashesResponse {
|
|
repeated ProposalStateHash state_hashes = 1;
|
|
int32 request_nonce = 2;
|
|
}
|
|
|
|
message GetBlindVoteStateHashesResponse {
|
|
repeated BlindVoteStateHash state_hashes = 1;
|
|
int32 request_nonce = 2;
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////
|
|
// Payload
|
|
///////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// core
|
|
|
|
message NodeAddress {
|
|
string host_name = 1;
|
|
int32 port = 2;
|
|
}
|
|
|
|
message Peer {
|
|
NodeAddress node_address = 1;
|
|
int64 date = 2;
|
|
repeated int32 supported_capabilities = 3;
|
|
}
|
|
|
|
message PubKeyRing {
|
|
bytes signature_pub_key_bytes = 1;
|
|
bytes encryption_pub_key_bytes = 2;
|
|
reserved 3; // WAS: string pgp_pub_key_as_pem = 3;
|
|
}
|
|
|
|
message SealedAndSigned {
|
|
bytes encrypted_secret_key = 1;
|
|
bytes encrypted_payload_with_hmac = 2;
|
|
bytes signature = 3;
|
|
bytes sig_public_key_bytes = 4;
|
|
}
|
|
|
|
// storage
|
|
|
|
message StoragePayload {
|
|
oneof message {
|
|
Alert alert = 1;
|
|
Arbitrator arbitrator = 2;
|
|
Mediator mediator = 3;
|
|
Filter filter = 4;
|
|
|
|
// TradeStatistics trade_statistics = 5 [deprecated = true]; Removed in v.1.4.0
|
|
|
|
MailboxStoragePayload mailbox_storage_payload = 6;
|
|
OfferPayload offer_payload = 7;
|
|
TempProposalPayload temp_proposal_payload = 8;
|
|
RefundAgent refund_agent = 9;
|
|
}
|
|
}
|
|
|
|
message PersistableNetworkPayload {
|
|
oneof message {
|
|
AccountAgeWitness account_age_witness = 1;
|
|
TradeStatistics2 trade_statistics2 = 2 [deprecated = true];
|
|
ProposalPayload proposal_payload = 3;
|
|
BlindVotePayload blind_vote_payload = 4;
|
|
SignedWitness signed_witness = 5;
|
|
TradeStatistics3 trade_statistics3 = 6;
|
|
}
|
|
}
|
|
|
|
message ProtectedStorageEntry {
|
|
StoragePayload storagePayload = 1;
|
|
bytes owner_pub_key_bytes = 2;
|
|
int32 sequence_number = 3;
|
|
bytes signature = 4;
|
|
int64 creation_time_stamp = 5;
|
|
}
|
|
|
|
// mailbox
|
|
|
|
message StorageEntryWrapper {
|
|
oneof message {
|
|
ProtectedStorageEntry protected_storage_entry = 1;
|
|
ProtectedMailboxStorageEntry protected_mailbox_storage_entry = 2;
|
|
}
|
|
}
|
|
|
|
message ProtectedMailboxStorageEntry {
|
|
ProtectedStorageEntry entry = 1;
|
|
bytes receivers_pub_key_bytes = 2;
|
|
}
|
|
|
|
message DataAndSeqNrPair {
|
|
StoragePayload payload = 1;
|
|
int32 sequence_number = 2;
|
|
}
|
|
|
|
message MailboxMessageList {
|
|
repeated MailboxItem mailbox_item = 1;
|
|
}
|
|
|
|
message RemovedPayloadsMap {
|
|
map<string, uint64> date_by_hashes = 1;
|
|
}
|
|
|
|
message IgnoredMailboxMap {
|
|
map<string, uint64> data = 1;
|
|
}
|
|
|
|
message MailboxItem {
|
|
ProtectedMailboxStorageEntry protected_mailbox_storage_entry = 1;
|
|
DecryptedMessageWithPubKey decrypted_message_with_pub_key = 2;
|
|
}
|
|
|
|
message DecryptedMessageWithPubKey {
|
|
NetworkEnvelope network_envelope = 1;
|
|
bytes signature_pub_key_bytes = 2;
|
|
}
|
|
|
|
// misc
|
|
|
|
message PrivateNotificationPayload {
|
|
string message = 1;
|
|
string signature_as_base64 = 2;
|
|
bytes sig_public_key_bytes = 3;
|
|
}
|
|
|
|
message PaymentAccountFilter {
|
|
string payment_method_id = 1;
|
|
string get_method_name = 2;
|
|
string value = 3;
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////
|
|
// Storage payload
|
|
///////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
message Alert {
|
|
string message = 1;
|
|
string version = 2;
|
|
bool is_update_info = 3;
|
|
string signature_as_base64 = 4;
|
|
bytes owner_pub_key_bytes = 5;
|
|
map<string, string> extra_data = 6;
|
|
bool is_pre_release_info = 7;
|
|
}
|
|
|
|
message Arbitrator {
|
|
NodeAddress node_address = 1;
|
|
repeated string language_codes = 2;
|
|
int64 registration_date = 3;
|
|
string registration_signature = 4;
|
|
bytes registration_pub_key = 5;
|
|
PubKeyRing pub_key_ring = 6;
|
|
bytes btc_pub_key = 7;
|
|
string btc_address = 8;
|
|
string email_address = 9;
|
|
string info = 10;
|
|
map<string, string> extra_data = 11;
|
|
}
|
|
|
|
message Mediator {
|
|
NodeAddress node_address = 1;
|
|
repeated string language_codes = 2;
|
|
int64 registration_date = 3;
|
|
string registration_signature = 4;
|
|
bytes registration_pub_key = 5;
|
|
PubKeyRing pub_key_ring = 6;
|
|
string email_address = 7;
|
|
string info = 8;
|
|
map<string, string> extra_data = 9;
|
|
}
|
|
|
|
message RefundAgent {
|
|
NodeAddress node_address = 1;
|
|
repeated string language_codes = 2;
|
|
int64 registration_date = 3;
|
|
string registration_signature = 4;
|
|
bytes registration_pub_key = 5;
|
|
PubKeyRing pub_key_ring = 6;
|
|
string email_address = 7;
|
|
string info = 8;
|
|
map<string, string> extra_data = 9;
|
|
}
|
|
|
|
message Filter {
|
|
repeated string node_addresses_banned_from_trading = 1;
|
|
repeated string banned_offer_ids = 2;
|
|
repeated PaymentAccountFilter banned_payment_accounts = 3;
|
|
string signature_as_base64 = 4;
|
|
bytes owner_pub_key_bytes = 5;
|
|
map<string, string> extra_data = 6;
|
|
repeated string banned_currencies = 7;
|
|
repeated string banned_payment_methods = 8;
|
|
repeated string arbitrators = 9;
|
|
repeated string seed_nodes = 10;
|
|
repeated string price_relay_nodes = 11;
|
|
bool prevent_public_btc_network = 12;
|
|
repeated string btc_nodes = 13;
|
|
bool disable_dao = 14;
|
|
string disable_dao_below_version = 15;
|
|
string disable_trade_below_version = 16;
|
|
repeated string mediators = 17;
|
|
repeated string refundAgents = 18;
|
|
repeated string bannedSignerPubKeys = 19;
|
|
repeated string btc_fee_receiver_addresses = 20;
|
|
int64 creation_date = 21;
|
|
string signer_pub_key_as_hex = 22;
|
|
repeated string bannedPrivilegedDevPubKeys = 23;
|
|
bool disable_auto_conf = 24;
|
|
repeated string banned_auto_conf_explorers = 25;
|
|
repeated string node_addresses_banned_from_network = 26;
|
|
bool disable_api = 27;
|
|
bool disable_mempool_validation = 28;
|
|
}
|
|
|
|
// Deprecated
|
|
message TradeStatistics2 {
|
|
string base_currency = 1 [deprecated = true];
|
|
string counter_currency = 2 [deprecated = true];
|
|
OfferPayload.Direction direction = 3 [deprecated = true];
|
|
int64 trade_price = 4 [deprecated = true];
|
|
int64 trade_amount = 5 [deprecated = true];
|
|
int64 trade_date = 6 [deprecated = true];
|
|
string payment_method_id = 7 [deprecated = true];
|
|
int64 offer_date = 8 [deprecated = true];
|
|
bool offer_use_market_based_price = 9 [deprecated = true];
|
|
double offer_market_price_margin = 10 [deprecated = true];
|
|
int64 offer_amount = 11 [deprecated = true];
|
|
int64 offer_min_amount = 12 [deprecated = true];
|
|
string offer_id = 13 [deprecated = true];
|
|
string deposit_tx_id = 14 [deprecated = true];
|
|
bytes hash = 15 [deprecated = true];
|
|
map<string, string> extra_data = 16 [deprecated = true];
|
|
string maker_deposit_tx_id = 100;
|
|
string taker_deposit_tx_id = 101;
|
|
}
|
|
|
|
message TradeStatistics3 {
|
|
string currency = 1;
|
|
int64 price = 2;
|
|
int64 amount = 3;
|
|
string payment_method = 4;
|
|
int64 date = 5;
|
|
reserved 6; // was string mediator = 6;
|
|
reserved 7; // was string refund_agent = 7;
|
|
bytes hash = 8;
|
|
map<string, string> extra_data = 9;
|
|
|
|
string arbitrator = 100;
|
|
string maker_deposit_tx_id = 101;
|
|
string taker_deposit_tx_id = 102;
|
|
}
|
|
|
|
message MailboxStoragePayload {
|
|
PrefixedSealedAndSignedMessage prefixed_sealed_and_signed_message = 1;
|
|
bytes sender_pub_key_for_add_operation_bytes = 2;
|
|
bytes owner_pub_key_bytes = 3;
|
|
map<string, string> extra_data = 4;
|
|
}
|
|
|
|
message OfferPayload {
|
|
enum Direction {
|
|
PB_ERROR = 0;
|
|
BUY = 1;
|
|
SELL = 2;
|
|
}
|
|
|
|
string id = 1;
|
|
int64 date = 2;
|
|
NodeAddress owner_node_address = 3;
|
|
PubKeyRing pub_key_ring = 4;
|
|
Direction direction = 5;
|
|
int64 price = 6;
|
|
double market_price_margin = 7;
|
|
bool use_market_based_price = 8;
|
|
int64 amount = 9;
|
|
int64 min_amount = 10;
|
|
string base_currency_code = 11;
|
|
string counter_currency_code = 12;
|
|
string payment_method_id = 13;
|
|
string maker_payment_account_id = 14;
|
|
string offer_fee_payment_tx_id = 15;
|
|
string country_code = 16;
|
|
repeated string accepted_country_codes = 17;
|
|
string bank_id = 18;
|
|
repeated string accepted_bank_ids = 19;
|
|
string version_nr = 20;
|
|
int64 block_height_at_offer_creation = 21;
|
|
int64 tx_fee = 22;
|
|
int64 maker_fee = 23;
|
|
bool is_currency_for_maker_fee_btc = 24;
|
|
int64 buyer_security_deposit = 25;
|
|
int64 seller_security_deposit = 26;
|
|
int64 max_trade_limit = 27;
|
|
int64 max_trade_period = 28;
|
|
bool use_auto_close = 29;
|
|
bool use_re_open_after_auto_close = 30;
|
|
int64 lower_close_price = 31;
|
|
int64 upper_close_price = 32;
|
|
bool is_private_offer = 33;
|
|
string hash_of_challenge = 34;
|
|
map<string, string> extra_data = 35;
|
|
int32 protocol_version = 36;
|
|
|
|
NodeAddress arbitrator_node_address = 1001;
|
|
string arbitrator_signature = 1002;
|
|
}
|
|
|
|
message AccountAgeWitness {
|
|
bytes hash = 1;
|
|
int64 date = 2;
|
|
}
|
|
|
|
message SignedWitness {
|
|
enum VerificationMethod {
|
|
PB_ERROR = 0;
|
|
ARBITRATOR = 1;
|
|
TRADE = 2;
|
|
}
|
|
|
|
VerificationMethod verification_method = 1;
|
|
bytes account_age_witness_hash = 2;
|
|
bytes signature = 3;
|
|
bytes signer_pub_key = 4;
|
|
bytes witness_owner_pub_key = 5;
|
|
int64 date = 6;
|
|
int64 trade_amount = 7;
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////
|
|
// Dispute payload
|
|
///////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
message Dispute {
|
|
enum State {
|
|
NEEDS_UPGRADE = 0;
|
|
NEW = 1;
|
|
OPEN = 2;
|
|
REOPENED = 3;
|
|
CLOSED = 4;
|
|
}
|
|
string trade_id = 1;
|
|
string id = 2;
|
|
int32 trader_id = 3;
|
|
bool is_opener = 4;
|
|
bool dispute_opener_is_buyer = 5;
|
|
bool dispute_opener_is_maker = 6;
|
|
int64 opening_date = 7;
|
|
PubKeyRing trader_pub_key_ring = 8;
|
|
int64 trade_date = 9;
|
|
Contract contract = 10;
|
|
bytes contract_hash = 11;
|
|
bytes deposit_tx_serialized = 12;
|
|
bytes payout_tx_serialized = 13;
|
|
string deposit_tx_id = 14;
|
|
string payout_tx_id = 15;
|
|
string contract_as_json = 16;
|
|
string maker_contract_signature = 17;
|
|
string taker_contract_signature = 18;
|
|
PaymentAccountPayload maker_payment_account_payload = 19;
|
|
PaymentAccountPayload taker_payment_account_payload = 20;
|
|
PubKeyRing agent_pub_key_ring = 21;
|
|
bool is_support_ticket = 22;
|
|
repeated ChatMessage chat_message = 23;
|
|
bool is_closed = 24;
|
|
DisputeResult dispute_result = 25;
|
|
string dispute_payout_tx_id = 26;
|
|
SupportType support_type = 27;
|
|
string mediators_dispute_result = 28;
|
|
string delayed_payout_tx_id = 29;
|
|
string donation_address_of_delayed_payout_tx = 30;
|
|
State state = 31;
|
|
int64 trade_period_end = 32;
|
|
map<string, string> extra_data = 33;
|
|
}
|
|
|
|
message Attachment {
|
|
string file_name = 1;
|
|
bytes bytes = 2;
|
|
}
|
|
|
|
message DisputeResult {
|
|
enum Winner {
|
|
PB_ERROR_WINNER = 0;
|
|
BUYER = 1;
|
|
SELLER = 2;
|
|
}
|
|
|
|
enum Reason {
|
|
PB_ERROR_REASON = 0;
|
|
OTHER = 1;
|
|
BUG = 2;
|
|
USABILITY = 3;
|
|
SCAM = 4;
|
|
PROTOCOL_VIOLATION = 5;
|
|
NO_REPLY = 6;
|
|
BANK_PROBLEMS = 7;
|
|
OPTION_TRADE = 8;
|
|
SELLER_NOT_RESPONDING = 9;
|
|
WRONG_SENDER_ACCOUNT = 10;
|
|
TRADE_ALREADY_SETTLED = 11;
|
|
PEER_WAS_LATE = 12;
|
|
}
|
|
|
|
string trade_id = 1;
|
|
int32 trader_id = 2;
|
|
Winner winner = 3;
|
|
int32 reason_ordinal = 4;
|
|
bool tamper_proof_evidence = 5;
|
|
bool id_verification = 6;
|
|
bool screen_cast = 7;
|
|
string summary_notes = 8;
|
|
ChatMessage chat_message = 9;
|
|
reserved 10; // was bytes arbitrator_signature = 10;
|
|
int64 buyer_payout_amount = 11;
|
|
int64 seller_payout_amount = 12;
|
|
bytes arbitrator_pub_key = 13;
|
|
int64 close_date = 14;
|
|
bool is_loser_publisher = 15;
|
|
string arbitrator_signed_payout_tx_hex = 16;
|
|
string arbitrator_updated_multisig_hex = 17;
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////
|
|
// Trade payload
|
|
///////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
message Contract {
|
|
OfferPayload offer_payload = 1;
|
|
int64 trade_amount = 2;
|
|
int64 trade_price = 3;
|
|
reserved 4; // WAS: taker_fee_tx_id
|
|
reserved 5; // WAS: arbitrator_node_address
|
|
bool is_buyer_maker_and_seller_taker = 6;
|
|
string maker_account_id = 7;
|
|
string taker_account_id = 8;
|
|
string maker_payment_method_id = 9;
|
|
string taker_payment_method_id = 10;
|
|
bytes maker_payment_account_payload_hash = 11;
|
|
bytes taker_payment_account_payload_hash = 12;
|
|
PubKeyRing maker_pub_key_ring = 13;
|
|
PubKeyRing taker_pub_key_ring = 14;
|
|
NodeAddress buyer_node_address = 15;
|
|
NodeAddress seller_node_address = 16;
|
|
string maker_payout_address_string = 17;
|
|
string taker_payout_address_string = 18;
|
|
NodeAddress arbitrator_node_address = 19;
|
|
int64 lock_time = 20;
|
|
string maker_deposit_tx_hash = 21;
|
|
string taker_deposit_tx_hash = 22;
|
|
}
|
|
|
|
message RawTransactionInput {
|
|
int64 index = 1;
|
|
bytes parent_transaction = 2;
|
|
int64 value = 3;
|
|
}
|
|
|
|
enum AvailabilityResult {
|
|
PB_ERROR = 0;
|
|
UNKNOWN_FAILURE = 1;
|
|
AVAILABLE = 2;
|
|
OFFER_TAKEN = 3;
|
|
PRICE_OUT_OF_TOLERANCE = 4;
|
|
MARKET_PRICE_NOT_AVAILABLE = 5;
|
|
NO_ARBITRATORS = 6;
|
|
NO_MEDIATORS = 7;
|
|
USER_IGNORED = 8;
|
|
MISSING_MANDATORY_CAPABILITY = 9;
|
|
NO_REFUND_AGENTS = 10;
|
|
UNCONF_TX_LIMIT_HIT = 11;
|
|
MAKER_DENIED_API_USER = 12;
|
|
PRICE_CHECK_FAILED = 13;
|
|
MAKER_DENIED_TAKER = 14;
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////
|
|
// PaymentAccount payload
|
|
///////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
message PaymentAccountPayload {
|
|
string id = 1;
|
|
string payment_method_id = 2;
|
|
int64 max_trade_period = 3 [deprecated = true]; // not used anymore but we need to keep it in PB for backward compatibility
|
|
oneof message {
|
|
AliPayAccountPayload ali_pay_account_payload = 4;
|
|
ChaseQuickPayAccountPayload chase_quick_pay_account_payload = 5;
|
|
ClearXchangeAccountPayload clear_xchange_account_payload = 6;
|
|
CountryBasedPaymentAccountPayload country_based_payment_account_payload = 7;
|
|
CryptoCurrencyAccountPayload crypto_currency_account_payload = 8;
|
|
FasterPaymentsAccountPayload faster_payments_account_payload = 9;
|
|
InteracETransferAccountPayload interac_e_transfer_account_payload = 10;
|
|
OKPayAccountPayload o_k_pay_account_payload = 11 [deprecated = true];
|
|
PerfectMoneyAccountPayload perfect_money_account_payload = 12;
|
|
SwishAccountPayload swish_account_payload = 13;
|
|
USPostalMoneyOrderAccountPayload u_s_postal_money_order_account_payload = 14;
|
|
UpholdAccountPayload uphold_account_payload = 16;
|
|
CashAppAccountPayload cash_app_account_payload = 17 [deprecated = true];
|
|
MoneyBeamAccountPayload money_beam_account_payload = 18;
|
|
VenmoAccountPayload venmo_account_payload = 19 [deprecated = true];
|
|
PopmoneyAccountPayload popmoney_account_payload = 20;
|
|
RevolutAccountPayload revolut_account_payload = 21;
|
|
WeChatPayAccountPayload we_chat_pay_account_payload = 22;
|
|
MoneyGramAccountPayload money_gram_account_payload = 23;
|
|
HalCashAccountPayload hal_cash_account_payload = 24;
|
|
PromptPayAccountPayload prompt_pay_account_payload = 25;
|
|
AdvancedCashAccountPayload advanced_cash_account_payload = 26;
|
|
InstantCryptoCurrencyAccountPayload instant_crypto_currency_account_payload = 27;
|
|
JapanBankAccountPayload japan_bank_account_payload = 28;
|
|
TransferwiseAccountPayload Transferwise_account_payload = 29;
|
|
AustraliaPayidPayload australia_payid_payload = 30;
|
|
AmazonGiftCardAccountPayload amazon_gift_card_account_payload = 31;
|
|
CashByMailAccountPayload cash_by_mail_account_payload = 32;
|
|
}
|
|
map<string, string> exclude_from_json_data = 15;
|
|
}
|
|
|
|
message AliPayAccountPayload {
|
|
string account_nr = 1;
|
|
}
|
|
|
|
message WeChatPayAccountPayload {
|
|
string account_nr = 1;
|
|
}
|
|
|
|
message ChaseQuickPayAccountPayload {
|
|
string email = 1;
|
|
string holder_name = 2;
|
|
}
|
|
|
|
message ClearXchangeAccountPayload {
|
|
string holder_name = 1;
|
|
string email_or_mobile_nr = 2;
|
|
}
|
|
|
|
message CountryBasedPaymentAccountPayload {
|
|
string countryCode = 1;
|
|
oneof message {
|
|
BankAccountPayload bank_account_payload = 2;
|
|
CashDepositAccountPayload cash_deposit_account_payload = 3;
|
|
SepaAccountPayload sepa_account_payload = 4;
|
|
WesternUnionAccountPayload western_union_account_payload = 5;
|
|
SepaInstantAccountPayload sepa_instant_account_payload = 6;
|
|
F2FAccountPayload f2f_account_payload = 7;
|
|
}
|
|
}
|
|
|
|
message BankAccountPayload {
|
|
string holder_name = 1;
|
|
string bank_name = 2;
|
|
string bank_id = 3;
|
|
string branch_id = 4;
|
|
string account_nr = 5;
|
|
string account_type = 6;
|
|
string holder_tax_id = 7;
|
|
string email = 8 [deprecated = true];
|
|
oneof message {
|
|
NationalBankAccountPayload national_bank_account_payload = 9;
|
|
SameBankAccountPayload same_bank_accont_payload = 10;
|
|
SpecificBanksAccountPayload specific_banks_account_payload = 11;
|
|
}
|
|
string national_account_id = 12;
|
|
}
|
|
|
|
message NationalBankAccountPayload {
|
|
}
|
|
|
|
message SameBankAccountPayload {
|
|
}
|
|
|
|
message JapanBankAccountPayload {
|
|
string bank_name = 1;
|
|
string bank_code = 2;
|
|
string bank_branch_name = 3;
|
|
string bank_branch_code = 4;
|
|
string bank_account_type = 5;
|
|
string bank_account_name = 6;
|
|
string bank_account_number = 7;
|
|
}
|
|
|
|
message AustraliaPayidPayload {
|
|
string bank_account_name = 1;
|
|
string payid = 2;
|
|
}
|
|
|
|
message SpecificBanksAccountPayload {
|
|
repeated string accepted_banks = 1;
|
|
}
|
|
|
|
message CashDepositAccountPayload {
|
|
string holder_name = 1;
|
|
string holder_email = 2;
|
|
string bank_name = 3;
|
|
string bank_id = 4;
|
|
string branch_id = 5;
|
|
string account_nr = 6;
|
|
string account_type = 7;
|
|
string requirements = 8;
|
|
string holder_tax_id = 9;
|
|
string national_account_id = 10;
|
|
}
|
|
|
|
message MoneyGramAccountPayload {
|
|
string holder_name = 1;
|
|
string country_code = 2;
|
|
string state = 3;
|
|
string email = 4;
|
|
}
|
|
|
|
message HalCashAccountPayload {
|
|
string mobile_nr = 1;
|
|
}
|
|
|
|
message WesternUnionAccountPayload {
|
|
string holder_name = 1;
|
|
string city = 2;
|
|
string state = 3;
|
|
string email = 4;
|
|
}
|
|
|
|
message AmazonGiftCardAccountPayload {
|
|
string email_or_mobile_nr = 1;
|
|
string country_code = 2;
|
|
}
|
|
|
|
message SepaAccountPayload {
|
|
string holder_name = 1;
|
|
string iban = 2;
|
|
string bic = 3;
|
|
string email = 4 [deprecated = true];
|
|
repeated string accepted_country_codes = 5;
|
|
}
|
|
|
|
message SepaInstantAccountPayload {
|
|
string holder_name = 1;
|
|
string iban = 2;
|
|
string bic = 3;
|
|
repeated string accepted_country_codes = 4;
|
|
}
|
|
|
|
message CryptoCurrencyAccountPayload {
|
|
string address = 1;
|
|
}
|
|
|
|
message InstantCryptoCurrencyAccountPayload {
|
|
string address = 1;
|
|
}
|
|
|
|
message FasterPaymentsAccountPayload {
|
|
string sort_code = 1;
|
|
string account_nr = 2;
|
|
string email = 3 [deprecated = true];
|
|
}
|
|
|
|
message InteracETransferAccountPayload {
|
|
string email = 1;
|
|
string holder_name = 2;
|
|
string question = 3;
|
|
string answer = 4;
|
|
}
|
|
|
|
// Deprecated, not used anymore
|
|
message OKPayAccountPayload {
|
|
string account_nr = 1;
|
|
}
|
|
|
|
message UpholdAccountPayload {
|
|
string account_id = 1;
|
|
}
|
|
|
|
// Deprecated, not used anymore
|
|
message CashAppAccountPayload {
|
|
string cash_tag = 1;
|
|
}
|
|
|
|
message MoneyBeamAccountPayload {
|
|
string account_id = 1;
|
|
}
|
|
|
|
// Deprecated, not used anymore
|
|
message VenmoAccountPayload {
|
|
string venmo_user_name = 1;
|
|
string holder_name = 2;
|
|
}
|
|
|
|
message PopmoneyAccountPayload {
|
|
string account_id = 1;
|
|
string holder_name = 2;
|
|
}
|
|
|
|
message RevolutAccountPayload {
|
|
string account_id = 1;
|
|
string user_name = 2;
|
|
}
|
|
|
|
message PerfectMoneyAccountPayload {
|
|
string account_nr = 1;
|
|
}
|
|
|
|
message SwishAccountPayload {
|
|
string mobile_nr = 1;
|
|
string holder_name = 2;
|
|
}
|
|
|
|
message USPostalMoneyOrderAccountPayload {
|
|
string postal_address = 1;
|
|
string holder_name = 2;
|
|
}
|
|
|
|
message F2FAccountPayload {
|
|
string contact = 1;
|
|
string city = 2;
|
|
string extra_info = 3;
|
|
}
|
|
|
|
message CashByMailAccountPayload {
|
|
string postal_address = 1;
|
|
string contact = 2;
|
|
string extra_info = 3;
|
|
}
|
|
|
|
message PromptPayAccountPayload {
|
|
string prompt_pay_id = 1;
|
|
}
|
|
|
|
message AdvancedCashAccountPayload {
|
|
string account_nr = 1;
|
|
}
|
|
|
|
message TransferwiseAccountPayload {
|
|
string email = 1;
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////
|
|
// PersistableEnvelope
|
|
///////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Those are persisted to disc
|
|
message PersistableEnvelope {
|
|
oneof message {
|
|
SequenceNumberMap sequence_number_map = 1;
|
|
PersistedEntryMap persisted_entry_map = 2 [deprecated = true];
|
|
PeerList peer_list = 3;
|
|
AddressEntryList address_entry_list = 4;
|
|
NavigationPath navigation_path = 5;
|
|
|
|
TradableList tradable_list = 6;
|
|
// TradeStatisticsList trade_statistics_list = 7; // Was used in pre v0.6.0 version. Not used anymore.
|
|
ArbitrationDisputeList arbitration_dispute_list = 8;
|
|
|
|
PreferencesPayload preferences_payload = 9;
|
|
UserPayload user_payload = 10;
|
|
PaymentAccountList payment_account_list = 11;
|
|
|
|
// deprecated
|
|
// BsqState bsq_state = 12; // not used but as other non-dao data have a higher index number we leave it to make clear that we cannot change following indexes
|
|
|
|
AccountAgeWitnessStore account_age_witness_store = 13;
|
|
TradeStatistics2Store trade_statistics2_store = 14 [deprecated = true];
|
|
|
|
// PersistableNetworkPayloadList persistable_network_payload_list = 15; // long deprecated & migration away from it is already done
|
|
|
|
ProposalStore proposal_store = 16;
|
|
TempProposalStore temp_proposal_store = 17;
|
|
BlindVoteStore blind_vote_store = 18;
|
|
MyProposalList my_proposal_list = 19;
|
|
BallotList ballot_list = 20;
|
|
MyVoteList my_vote_list = 21;
|
|
MyBlindVoteList my_blind_vote_list = 22;
|
|
// MeritList merit_list = 23; // was not used here, but its class used to implement PersistableEnvelope via its super
|
|
DaoStateStore dao_state_store = 24;
|
|
MyReputationList my_reputation_list = 25;
|
|
MyProofOfBurnList my_proof_of_burn_list = 26;
|
|
UnconfirmedBsqChangeOutputList unconfirmed_bsq_change_output_list = 27;
|
|
SignedWitnessStore signed_witness_store = 28;
|
|
MediationDisputeList mediation_dispute_list = 29;
|
|
RefundDisputeList refund_dispute_list = 30;
|
|
TradeStatistics3Store trade_statistics3_store = 31;
|
|
MailboxMessageList mailbox_message_list = 32;
|
|
IgnoredMailboxMap ignored_mailbox_map = 33;
|
|
RemovedPayloadsMap removed_payloads_map = 34;
|
|
|
|
XmrAddressEntryList xmr_address_entry_list = 1001;
|
|
SignedOfferList signed_offer_list = 1002;
|
|
}
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////
|
|
// Collections
|
|
///////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
message SequenceNumberMap {
|
|
repeated SequenceNumberEntry sequence_number_entries = 1;
|
|
}
|
|
|
|
message SequenceNumberEntry {
|
|
ByteArray bytes = 1;
|
|
MapValue map_value = 2;
|
|
}
|
|
|
|
message ByteArray {
|
|
bytes bytes = 1;
|
|
}
|
|
|
|
message MapValue {
|
|
int32 sequence_nr = 1;
|
|
int64 time_stamp = 2;
|
|
}
|
|
|
|
// deprecated. Not used anymore.
|
|
message PersistedEntryMap {
|
|
map<string, ProtectedStorageEntry> persisted_entry_map = 1;
|
|
}
|
|
|
|
// We use a list not a hash map to save disc space. The hash can be calculated from the payload anyway
|
|
message AccountAgeWitnessStore {
|
|
repeated AccountAgeWitness items = 1;
|
|
}
|
|
|
|
message SignedWitnessStore {
|
|
repeated SignedWitness items = 1;
|
|
}
|
|
|
|
// We use a list not a hash map to save disc space. The hash can be calculated from the payload anyway
|
|
// Deprecated
|
|
message TradeStatistics2Store {
|
|
repeated TradeStatistics2 items = 1 [deprecated = true];
|
|
}
|
|
|
|
message TradeStatistics3Store {
|
|
repeated TradeStatistics3 items = 1;
|
|
}
|
|
|
|
message PeerList {
|
|
repeated Peer peer = 1;
|
|
}
|
|
|
|
message AddressEntryList {
|
|
repeated AddressEntry address_entry = 1;
|
|
}
|
|
|
|
message AddressEntry {
|
|
enum Context {
|
|
PB_ERROR = 0;
|
|
ARBITRATOR = 1;
|
|
AVAILABLE = 2;
|
|
OFFER_FUNDING = 3;
|
|
RESERVED_FOR_TRADE = 4;
|
|
MULTI_SIG = 5;
|
|
TRADE_PAYOUT = 6;
|
|
}
|
|
|
|
string offer_id = 7;
|
|
Context context = 8;
|
|
bytes pub_key = 9;
|
|
bytes pub_key_hash = 10;
|
|
int64 coin_locked_in_multi_sig = 11;
|
|
bool segwit = 12;
|
|
}
|
|
|
|
message XmrAddressEntryList {
|
|
repeated XmrAddressEntry xmr_address_entry = 1;
|
|
}
|
|
|
|
message XmrAddressEntry {
|
|
enum Context {
|
|
PB_ERROR = 0;
|
|
ARBITRATOR = 1;
|
|
AVAILABLE = 2;
|
|
OFFER_FUNDING = 3;
|
|
RESERVED_FOR_TRADE = 4;
|
|
MULTI_SIG = 5;
|
|
TRADE_PAYOUT = 6;
|
|
}
|
|
|
|
int32 subaddress_index = 7;
|
|
string address_string = 8;
|
|
string offer_id = 9;
|
|
Context context = 10;
|
|
int64 coin_locked_in_multi_sig = 11;
|
|
}
|
|
|
|
message NavigationPath {
|
|
repeated string path = 1;
|
|
}
|
|
|
|
message PaymentAccountList {
|
|
repeated PaymentAccount payment_account = 1;
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////
|
|
// Offer/Trade
|
|
///////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
message TradableList {
|
|
repeated Tradable tradable = 1;
|
|
}
|
|
|
|
message Offer {
|
|
enum State {
|
|
PB_ERROR = 0;
|
|
UNKNOWN = 1;
|
|
OFFER_FEE_PAID = 2;
|
|
AVAILABLE = 3;
|
|
NOT_AVAILABLE = 4;
|
|
REMOVED = 5;
|
|
MAKER_OFFLINE = 6;
|
|
}
|
|
|
|
OfferPayload offer_payload = 1;
|
|
}
|
|
|
|
message SignedOfferList {
|
|
repeated SignedOffer signed_offer = 1;
|
|
}
|
|
|
|
message SignedOffer {
|
|
string offer_id = 1;
|
|
string reserve_tx_hash = 2;
|
|
string reserve_tx_hex = 3;
|
|
string arbitrator_signature = 4;
|
|
}
|
|
|
|
message OpenOffer {
|
|
enum State {
|
|
PB_ERROR = 0;
|
|
AVAILABLE = 1;
|
|
RESERVED = 2;
|
|
CLOSED = 3;
|
|
CANCELED = 4;
|
|
DEACTIVATED = 5;
|
|
}
|
|
|
|
Offer offer = 1;
|
|
State state = 2;
|
|
NodeAddress arbitrator_node_address = 3;
|
|
int64 trigger_price = 4;
|
|
repeated string frozen_key_images = 5;
|
|
}
|
|
|
|
message Tradable {
|
|
oneof message {
|
|
OpenOffer open_offer = 1;
|
|
BuyerAsMakerTrade buyer_as_maker_trade = 2;
|
|
BuyerAsTakerTrade buyer_as_taker_trade = 3;
|
|
SellerAsMakerTrade seller_as_maker_trade = 4;
|
|
SellerAsTakerTrade seller_as_taker_trade = 5;
|
|
ArbitratorTrade arbitrator_trade = 6;
|
|
|
|
SignedOffer signed_offer = 1001;
|
|
}
|
|
}
|
|
|
|
message Trade {
|
|
enum State {
|
|
PB_ERROR_STATE = 0;
|
|
PREPARATION = 1;
|
|
TAKER_PUBLISHED_TAKER_FEE_TX = 2;
|
|
MAKER_SENT_PUBLISH_DEPOSIT_TX_REQUEST = 3;
|
|
MAKER_SAW_ARRIVED_PUBLISH_DEPOSIT_TX_REQUEST = 4;
|
|
MAKER_STORED_IN_MAILBOX_PUBLISH_DEPOSIT_TX_REQUEST = 5;
|
|
MAKER_SEND_FAILED_PUBLISH_DEPOSIT_TX_REQUEST = 6;
|
|
TAKER_RECEIVED_PUBLISH_DEPOSIT_TX_REQUEST = 7;
|
|
TAKER_PUBLISHED_DEPOSIT_TX = 8;
|
|
TAKER_SAW_DEPOSIT_TX_IN_NETWORK = 9;
|
|
TAKER_SENT_DEPOSIT_TX_PUBLISHED_MSG = 10;
|
|
TAKER_SAW_ARRIVED_DEPOSIT_TX_PUBLISHED_MSG = 11;
|
|
TAKER_STORED_IN_MAILBOX_DEPOSIT_TX_PUBLISHED_MSG = 12;
|
|
TAKER_SEND_FAILED_DEPOSIT_TX_PUBLISHED_MSG = 13;
|
|
MAKER_RECEIVED_DEPOSIT_TX_PUBLISHED_MSG = 14;
|
|
MAKER_SAW_DEPOSIT_TX_IN_NETWORK = 15;
|
|
DEPOSIT_CONFIRMED_IN_BLOCK_CHAIN = 16;
|
|
BUYER_CONFIRMED_IN_UI_FIAT_PAYMENT_INITIATED = 17;
|
|
BUYER_SENT_FIAT_PAYMENT_INITIATED_MSG = 18;
|
|
BUYER_SAW_ARRIVED_FIAT_PAYMENT_INITIATED_MSG = 19;
|
|
BUYER_STORED_IN_MAILBOX_FIAT_PAYMENT_INITIATED_MSG = 20;
|
|
BUYER_SEND_FAILED_FIAT_PAYMENT_INITIATED_MSG = 21;
|
|
SELLER_RECEIVED_FIAT_PAYMENT_INITIATED_MSG = 22;
|
|
SELLER_CONFIRMED_IN_UI_FIAT_PAYMENT_RECEIPT = 23;
|
|
SELLER_PUBLISHED_PAYOUT_TX = 24;
|
|
SELLER_SENT_PAYOUT_TX_PUBLISHED_MSG = 25;
|
|
SELLER_SAW_ARRIVED_PAYOUT_TX_PUBLISHED_MSG = 26;
|
|
SELLER_STORED_IN_MAILBOX_PAYOUT_TX_PUBLISHED_MSG = 27;
|
|
SELLER_SEND_FAILED_PAYOUT_TX_PUBLISHED_MSG = 28;
|
|
BUYER_RECEIVED_PAYOUT_TX_PUBLISHED_MSG = 29;
|
|
BUYER_SAW_PAYOUT_TX_IN_NETWORK = 30;
|
|
WITHDRAW_COMPLETED = 31;
|
|
}
|
|
|
|
enum Phase {
|
|
PB_ERROR_PHASE = 0;
|
|
INIT = 1;
|
|
TAKER_FEE_PUBLISHED = 2;
|
|
DEPOSIT_PUBLISHED = 3;
|
|
DEPOSIT_CONFIRMED = 4;
|
|
FIAT_SENT = 5;
|
|
FIAT_RECEIVED = 6;
|
|
PAYOUT_PUBLISHED = 7;
|
|
WITHDRAWN = 8;
|
|
}
|
|
|
|
enum DisputeState {
|
|
PB_ERROR_DISPUTE_STATE = 0;
|
|
NO_DISPUTE = 1;
|
|
DISPUTE_REQUESTED = 2; // arbitration We use the enum name for resolving enums so it cannot be renamed
|
|
DISPUTE_STARTED_BY_PEER = 3; // arbitration We use the enum name for resolving enums so it cannot be renamed
|
|
DISPUTE_CLOSED = 4; // arbitration We use the enum name for resolving enums so it cannot be renamed
|
|
MEDIATION_REQUESTED = 5;
|
|
MEDIATION_STARTED_BY_PEER = 6;
|
|
MEDIATION_CLOSED = 7;
|
|
REFUND_REQUESTED = 8;
|
|
REFUND_REQUEST_STARTED_BY_PEER = 9;
|
|
REFUND_REQUEST_CLOSED = 10;
|
|
}
|
|
|
|
enum TradePeriodState {
|
|
PB_ERROR_TRADE_PERIOD_STATE = 0;
|
|
FIRST_HALF = 1;
|
|
SECOND_HALF = 2;
|
|
TRADE_PERIOD_OVER = 3;
|
|
}
|
|
|
|
Offer offer = 1;
|
|
ProcessModel process_model = 2;
|
|
string taker_fee_tx_id = 3;
|
|
reserved 4;
|
|
string payout_tx_id = 5;
|
|
int64 trade_amount_as_long = 6;
|
|
int64 tx_fee_as_long = 7;
|
|
int64 taker_fee_as_long = 8;
|
|
int64 take_offer_date = 9;
|
|
bool is_currency_for_taker_fee_btc = 10;
|
|
int64 trade_price = 11;
|
|
State state = 13;
|
|
DisputeState dispute_state = 14;
|
|
TradePeriodState trade_period_state = 15;
|
|
Contract contract = 16;
|
|
string contract_as_json = 17;
|
|
bytes contract_hash = 18;
|
|
NodeAddress arbitrator_node_address = 19;
|
|
NodeAddress mediator_node_address = 20;
|
|
bytes arbitrator_btc_pub_key = 21;
|
|
string taker_payment_account_id = 22;
|
|
string error_message = 23;
|
|
PubKeyRing arbitrator_pub_key_ring = 24;
|
|
PubKeyRing mediator_pub_key_ring = 25;
|
|
string counter_currency_tx_id = 26;
|
|
repeated ChatMessage chat_message = 27;
|
|
MediationResultState mediation_result_state = 28;
|
|
int64 lock_time = 29;
|
|
bytes delayed_payout_tx_bytes = 30;
|
|
NodeAddress refund_agent_node_address = 31;
|
|
PubKeyRing refund_agent_pub_key_ring = 32;
|
|
RefundResultState refund_result_state = 33;
|
|
int64 last_refresh_request_date = 34 [deprecated = true];
|
|
string counter_currency_extra_data = 35;
|
|
string asset_tx_proof_result = 36; // name of AssetTxProofResult enum
|
|
string uid = 37;
|
|
|
|
NodeAddress maker_node_address = 100; // TODO (woodser): move these into TradingPeer
|
|
NodeAddress taker_node_address = 101;
|
|
PubKeyRing taker_pub_key_ring = 102;
|
|
PubKeyRing maker_pub_key_ring = 103;
|
|
}
|
|
|
|
message BuyerAsMakerTrade {
|
|
Trade trade = 1;
|
|
}
|
|
|
|
message BuyerAsTakerTrade {
|
|
Trade trade = 1;
|
|
}
|
|
|
|
message SellerAsMakerTrade {
|
|
Trade trade = 1;
|
|
}
|
|
|
|
message SellerAsTakerTrade {
|
|
Trade trade = 1;
|
|
}
|
|
|
|
message ArbitratorTrade {
|
|
Trade trade = 1;
|
|
}
|
|
|
|
message ProcessModel {
|
|
reserved 1; // Not used anymore
|
|
string offer_id = 2;
|
|
string account_id = 3;
|
|
PubKeyRing pub_key_ring = 4;
|
|
string take_offer_fee_tx_id = 5;
|
|
bytes payout_tx_signature = 6;
|
|
reserved 7; // Not used anymore
|
|
reserved 8; // Not used anymore
|
|
reserved 9; // Not used anymore
|
|
repeated RawTransactionInput raw_transaction_inputs = 10;
|
|
int64 change_output_value = 11;
|
|
string change_output_address = 12;
|
|
bool use_savings_wallet = 13;
|
|
int64 funds_needed_for_trade_as_long = 14;
|
|
bytes my_multi_sig_pub_key = 15;
|
|
reserved 16; // Not used anymore
|
|
string payment_started_message_state = 17;
|
|
bytes mediated_payout_tx_signature = 18;
|
|
int64 buyer_payout_amount_from_mediation = 19;
|
|
int64 seller_payout_amount_from_mediation = 20;
|
|
|
|
string maker_signature = 1001;
|
|
NodeAddress arbitrator_node_address = 1002;
|
|
TradingPeer maker = 1003;
|
|
TradingPeer taker = 1004;
|
|
TradingPeer arbitrator = 1005;
|
|
NodeAddress temp_trading_peer_node_address = 1006;
|
|
string reserve_tx_hash = 1007;
|
|
repeated string frozen_key_images = 1008;
|
|
string prepared_multisig_hex = 1009;
|
|
string made_multisig_hex = 1010;
|
|
bool multisig_setup_complete = 1011;
|
|
bool maker_ready_to_fund_multisig = 1012;
|
|
bool multisig_deposit_initiated = 1013;
|
|
}
|
|
|
|
message TradingPeer {
|
|
string account_id = 1;
|
|
string payment_account_id = 2;
|
|
string payment_method_id = 3;
|
|
bytes payment_account_payload_hash = 4;
|
|
PaymentAccountPayload payment_account_payload = 5;
|
|
string payout_address_string = 6;
|
|
string contract_as_json = 7;
|
|
string contract_signature = 8;
|
|
bytes signature = 9; // TODO (woodser): remove unused fields? this was buyer-signed payout tx as bytes
|
|
PubKeyRing pub_key_ring = 10;
|
|
bytes multi_sig_pub_key = 11;
|
|
repeated RawTransactionInput raw_transaction_inputs = 12;
|
|
int64 change_output_value = 13;
|
|
string change_output_address = 14;
|
|
bytes account_age_witness_nonce = 15;
|
|
bytes account_age_witness_signature = 16;
|
|
int64 current_date = 17;
|
|
bytes mediated_payout_tx_signature = 18;
|
|
|
|
string reserve_tx_hash = 1001;
|
|
string reserve_tx_hex = 1002;
|
|
string reserve_tx_key = 1003;
|
|
string prepared_multisig_hex = 1004;
|
|
string made_multisig_hex = 1005;
|
|
string signed_payout_tx_hex = 1006;
|
|
string deposit_tx_hash = 1007;
|
|
string deposit_tx_hex = 1008;
|
|
string deposit_tx_key = 1009;
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////
|
|
// Dispute
|
|
///////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
message ArbitrationDisputeList {
|
|
repeated Dispute dispute = 1;
|
|
}
|
|
|
|
message MediationDisputeList {
|
|
repeated Dispute dispute = 1;
|
|
}
|
|
|
|
message RefundDisputeList {
|
|
repeated Dispute dispute = 1;
|
|
}
|
|
|
|
enum MediationResultState {
|
|
PB_ERROR_MEDIATION_RESULT = 0;
|
|
UNDEFINED_MEDIATION_RESULT = 1;
|
|
MEDIATION_RESULT_ACCEPTED = 2;
|
|
MEDIATION_RESULT_REJECTED = 3;
|
|
SIG_MSG_SENT = 4;
|
|
SIG_MSG_ARRIVED = 5;
|
|
SIG_MSG_IN_MAILBOX = 6;
|
|
SIG_MSG_SEND_FAILED = 7;
|
|
RECEIVED_SIG_MSG = 8;
|
|
PAYOUT_TX_PUBLISHED = 9;
|
|
PAYOUT_TX_PUBLISHED_MSG_SENT = 10;
|
|
PAYOUT_TX_PUBLISHED_MSG_ARRIVED = 11;
|
|
PAYOUT_TX_PUBLISHED_MSG_IN_MAILBOX = 12;
|
|
PAYOUT_TX_PUBLISHED_MSG_SEND_FAILED = 13;
|
|
RECEIVED_PAYOUT_TX_PUBLISHED_MSG = 14;
|
|
PAYOUT_TX_SEEN_IN_NETWORK = 15;
|
|
}
|
|
|
|
//todo
|
|
enum RefundResultState {
|
|
PB_ERROR_REFUND_RESULT = 0;
|
|
UNDEFINED_REFUND_RESULT = 1;
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////
|
|
// Preferences
|
|
///////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
message PreferencesPayload {
|
|
string user_language = 1;
|
|
Country user_country = 2;
|
|
repeated TradeCurrency fiat_currencies = 3;
|
|
repeated TradeCurrency crypto_currencies = 4;
|
|
BlockChainExplorer block_chain_explorer_main_net = 5;
|
|
BlockChainExplorer block_chain_explorer_test_net = 6;
|
|
BlockChainExplorer bsq_block_chain_explorer = 7;
|
|
string backup_directory = 8;
|
|
bool auto_select_arbitrators = 9;
|
|
map<string, bool> dont_show_again_map = 10;
|
|
bool tac_accepted = 11;
|
|
bool use_tor_for_bitcoin_j = 12;
|
|
bool show_own_offers_in_offer_book = 13;
|
|
TradeCurrency preferred_trade_currency = 14;
|
|
int64 withdrawal_tx_fee_in_vbytes = 15;
|
|
bool use_custom_withdrawal_tx_fee = 16;
|
|
double max_price_distance_in_percent = 17;
|
|
string offer_book_chart_screen_currency_code = 18;
|
|
string trade_charts_screen_currency_code = 19;
|
|
string buy_screen_currency_code = 20;
|
|
string sell_screen_currency_code = 21;
|
|
int32 trade_statistics_tick_unit_index = 22;
|
|
bool resync_Spv_requested = 23;
|
|
bool sort_market_currencies_numerically = 24;
|
|
bool use_percentage_based_price = 25;
|
|
map<string, string> peer_tag_map = 26;
|
|
string bitcoin_nodes = 27;
|
|
repeated string ignore_traders_list = 28;
|
|
string directory_chooser_path = 29;
|
|
int64 buyer_security_deposit_as_long = 30 [deprecated = true]; // Superseded by buyerSecurityDepositAsPercent
|
|
bool use_animations = 31;
|
|
PaymentAccount selectedPayment_account_for_createOffer = 32;
|
|
bool pay_fee_in_Btc = 33;
|
|
repeated string bridge_addresses = 34;
|
|
int32 bridge_option_ordinal = 35;
|
|
int32 tor_transport_ordinal = 36;
|
|
string custom_bridges = 37;
|
|
int32 bitcoin_nodes_option_ordinal = 38;
|
|
string referral_id = 39;
|
|
string phone_key_and_token = 40;
|
|
bool use_sound_for_mobile_notifications = 41;
|
|
bool use_trade_notifications = 42;
|
|
bool use_market_notifications = 43;
|
|
bool use_price_notifications = 44;
|
|
bool use_standby_mode = 45;
|
|
bool is_dao_full_node = 46;
|
|
string rpc_user = 47;
|
|
string rpc_pw = 48;
|
|
string take_offer_selected_payment_account_id = 49;
|
|
double buyer_security_deposit_as_percent = 50;
|
|
int32 ignore_dust_threshold = 51;
|
|
double buyer_security_deposit_as_percent_for_crypto = 52;
|
|
int32 block_notify_port = 53;
|
|
int32 css_theme = 54;
|
|
bool tac_accepted_v120 = 55;
|
|
repeated AutoConfirmSettings auto_confirm_settings = 56;
|
|
double bsq_average_trim_threshold = 57;
|
|
bool hide_non_account_payment_methods = 58;
|
|
bool show_offers_matching_my_accounts = 59;
|
|
bool deny_api_taker = 60;
|
|
bool notify_on_pre_release = 61;
|
|
}
|
|
|
|
message AutoConfirmSettings {
|
|
bool enabled = 1;
|
|
int32 required_confirmations = 2;
|
|
int64 trade_limit = 3;
|
|
repeated string service_addresses = 4;
|
|
string currency_code = 5;
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////
|
|
// UserPayload
|
|
///////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
message UserPayload {
|
|
string account_id = 1;
|
|
repeated PaymentAccount payment_accounts = 2;
|
|
PaymentAccount current_payment_account = 3;
|
|
repeated string accepted_language_locale_codes = 4;
|
|
Alert developers_alert = 5;
|
|
Alert displayed_alert = 6;
|
|
Filter developers_filter = 7;
|
|
repeated Arbitrator accepted_arbitrators = 8;
|
|
repeated Mediator accepted_mediators = 9;
|
|
Arbitrator registered_arbitrator = 10;
|
|
Mediator registered_mediator = 11;
|
|
PriceAlertFilter price_alert_filter = 12;
|
|
repeated MarketAlertFilter market_alert_filters = 13;
|
|
repeated RefundAgent accepted_refund_agents = 14;
|
|
RefundAgent registered_refund_agent = 15;
|
|
map<string, string> cookie = 16;
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////
|
|
// DAO
|
|
///////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// blockchain
|
|
|
|
message BaseBlock {
|
|
int32 height = 1;
|
|
int64 time = 2;
|
|
string hash = 3;
|
|
string previous_block_hash = 4;
|
|
oneof message {
|
|
RawBlock raw_block = 5;
|
|
Block block = 6;
|
|
}
|
|
}
|
|
|
|
message RawBlock {
|
|
// Because of the way how PB implements inheritance we need to use the super class as type
|
|
repeated BaseTx raw_txs = 1;
|
|
}
|
|
|
|
message Block {
|
|
// Because of the way how PB implements inheritance we need to use the super class as type
|
|
repeated BaseTx txs = 1;
|
|
}
|
|
|
|
message BaseTx {
|
|
string tx_version = 1;
|
|
string id = 2;
|
|
int32 block_height = 3;
|
|
string block_hash = 4;
|
|
int64 time = 5;
|
|
repeated TxInput tx_inputs = 6;
|
|
oneof message {
|
|
RawTx raw_tx = 7;
|
|
Tx tx = 8;
|
|
}
|
|
}
|
|
|
|
message RawTx {
|
|
// Because of the way how PB implements inheritance we need to use the super class as type
|
|
repeated BaseTxOutput raw_tx_outputs = 1;
|
|
}
|
|
|
|
message Tx {
|
|
// Because of the way how PB implements inheritance we need to use the super class as type
|
|
repeated BaseTxOutput tx_outputs = 1;
|
|
TxType txType = 2;
|
|
int64 burnt_bsq = 3;
|
|
}
|
|
|
|
enum TxType {
|
|
PB_ERROR_TX_TYPE = 0;
|
|
UNDEFINED_TX_TYPE = 1;
|
|
UNVERIFIED = 2;
|
|
INVALID = 3;
|
|
GENESIS = 4;
|
|
TRANSFER_BSQ = 5;
|
|
PAY_TRADE_FEE = 6;
|
|
PROPOSAL = 7;
|
|
COMPENSATION_REQUEST = 8;
|
|
REIMBURSEMENT_REQUEST = 9;
|
|
BLIND_VOTE = 10;
|
|
VOTE_REVEAL = 11;
|
|
LOCKUP = 12;
|
|
UNLOCK = 13;
|
|
ASSET_LISTING_FEE = 14;
|
|
PROOF_OF_BURN = 15;
|
|
IRREGULAR = 16;
|
|
}
|
|
|
|
message TxInput {
|
|
string connected_tx_output_tx_id = 1;
|
|
int32 connected_tx_output_index = 2;
|
|
string pub_key = 3;
|
|
}
|
|
|
|
message BaseTxOutput {
|
|
int32 index = 1;
|
|
int64 value = 2;
|
|
string tx_id = 3;
|
|
PubKeyScript pub_key_script = 4;
|
|
string address = 5;
|
|
bytes op_return_data = 6;
|
|
int32 block_height = 7;
|
|
oneof message {
|
|
RawTxOutput raw_tx_output = 8;
|
|
TxOutput tx_output = 9;
|
|
}
|
|
}
|
|
|
|
message UnconfirmedTxOutput {
|
|
int32 index = 1;
|
|
int64 value = 2;
|
|
string tx_id = 3;
|
|
}
|
|
|
|
message RawTxOutput {
|
|
}
|
|
|
|
message TxOutput {
|
|
TxOutputType tx_output_type = 1;
|
|
int32 lock_time = 2;
|
|
int32 unlock_block_height = 3;
|
|
}
|
|
|
|
enum TxOutputType {
|
|
PB_ERROR_TX_OUTPUT_TYPE = 0;
|
|
UNDEFINED_OUTPUT = 1;
|
|
GENESIS_OUTPUT = 2;
|
|
BSQ_OUTPUT = 3;
|
|
BTC_OUTPUT = 4;
|
|
PROPOSAL_OP_RETURN_OUTPUT = 5;
|
|
COMP_REQ_OP_RETURN_OUTPUT = 6;
|
|
REIMBURSEMENT_OP_RETURN_OUTPUT = 7;
|
|
CONFISCATE_BOND_OP_RETURN_OUTPUT = 8;
|
|
ISSUANCE_CANDIDATE_OUTPUT = 9;
|
|
BLIND_VOTE_LOCK_STAKE_OUTPUT = 10;
|
|
BLIND_VOTE_OP_RETURN_OUTPUT = 11;
|
|
VOTE_REVEAL_UNLOCK_STAKE_OUTPUT = 12;
|
|
VOTE_REVEAL_OP_RETURN_OUTPUT = 13;
|
|
ASSET_LISTING_FEE_OP_RETURN_OUTPUT = 14;
|
|
PROOF_OF_BURN_OP_RETURN_OUTPUT = 15;
|
|
LOCKUP_OUTPUT = 16;
|
|
LOCKUP_OP_RETURN_OUTPUT = 17;
|
|
UNLOCK_OUTPUT = 18;
|
|
INVALID_OUTPUT = 19;
|
|
}
|
|
|
|
message SpentInfo {
|
|
int64 block_height = 1;
|
|
string tx_id = 2;
|
|
int32 input_index = 3;
|
|
}
|
|
|
|
enum ScriptType {
|
|
PB_ERROR_SCRIPT_TYPES = 0;
|
|
PUB_KEY = 1;
|
|
PUB_KEY_HASH = 2;
|
|
SCRIPT_HASH = 3;
|
|
MULTISIG = 4;
|
|
NULL_DATA = 5;
|
|
WITNESS_V0_KEYHASH = 6;
|
|
WITNESS_V0_SCRIPTHASH = 7;
|
|
NONSTANDARD = 8;
|
|
WITNESS_UNKNOWN = 9;
|
|
WITNESS_V1_TAPROOT = 10;
|
|
}
|
|
|
|
message PubKeyScript {
|
|
int32 req_sigs = 1;
|
|
ScriptType script_type = 2;
|
|
repeated string addresses = 3;
|
|
string asm = 4;
|
|
string hex = 5;
|
|
}
|
|
|
|
// dao data
|
|
|
|
message DaoPhase {
|
|
int32 phase_ordinal = 1;
|
|
int32 duration = 2;
|
|
}
|
|
|
|
message Cycle {
|
|
int32 height_of_first_lock = 1;
|
|
repeated DaoPhase dao_phase = 2;
|
|
}
|
|
|
|
message DaoState {
|
|
int32 chain_height = 1;
|
|
// Because of the way how PB implements inheritance we need to use the super class as type
|
|
repeated BaseBlock blocks = 2;
|
|
repeated Cycle cycles = 3;
|
|
// Because of the way how PB implements inheritance we need to use the super class as type
|
|
map<string, BaseTxOutput> unspent_tx_output_map = 4;
|
|
map<string, Issuance> issuance_map = 5;
|
|
repeated string confiscated_lockup_tx_list = 6;
|
|
map<string, SpentInfo> spent_info_map = 7;
|
|
repeated ParamChange param_change_list = 8;
|
|
repeated EvaluatedProposal evaluated_proposal_list = 9;
|
|
repeated DecryptedBallotsWithMerits decrypted_ballots_with_merits_list = 10;
|
|
}
|
|
|
|
message Issuance {
|
|
string tx_id = 1;
|
|
int32 chain_height = 2;
|
|
int64 amount = 3;
|
|
string pub_key = 4;
|
|
string issuance_type = 5;
|
|
}
|
|
|
|
message Proposal {
|
|
string name = 1;
|
|
string link = 2;
|
|
uint32 version = 3;
|
|
int64 creation_date = 4;
|
|
string tx_id = 5;
|
|
oneof message {
|
|
CompensationProposal compensation_proposal = 6;
|
|
ReimbursementProposal reimbursement_proposal = 7;
|
|
ChangeParamProposal change_param_proposal = 8;
|
|
RoleProposal role_proposal = 9;
|
|
ConfiscateBondProposal confiscate_bond_proposal = 10;
|
|
GenericProposal generic_proposal = 11;
|
|
RemoveAssetProposal remove_asset_proposal = 12;
|
|
}
|
|
// We leave some index space here in case we add more subclasses
|
|
map<string, string> extra_data = 20;
|
|
}
|
|
|
|
message CompensationProposal {
|
|
int64 requested_bsq = 1;
|
|
string bsq_address = 2;
|
|
}
|
|
|
|
message ReimbursementProposal {
|
|
int64 requested_bsq = 1;
|
|
string bsq_address = 2;
|
|
}
|
|
|
|
message ChangeParamProposal {
|
|
string param = 1; // name of enum
|
|
string param_value = 2;
|
|
}
|
|
|
|
message RoleProposal {
|
|
Role role = 1;
|
|
int64 required_bond_unit = 2;
|
|
int32 unlock_time = 3;
|
|
}
|
|
|
|
message ConfiscateBondProposal {
|
|
string lockup_tx_id = 1;
|
|
}
|
|
|
|
message GenericProposal {
|
|
}
|
|
|
|
message RemoveAssetProposal {
|
|
string ticker_symbol = 1;
|
|
}
|
|
|
|
message Role {
|
|
string uid = 1;
|
|
string name = 2;
|
|
string link = 3;
|
|
string bonded_role_type = 4; // name of BondedRoleType enum
|
|
}
|
|
|
|
message MyReputation {
|
|
string uid = 1;
|
|
bytes salt = 2;
|
|
}
|
|
|
|
message MyReputationList {
|
|
repeated MyReputation my_reputation = 1;
|
|
}
|
|
|
|
message MyProofOfBurn {
|
|
string tx_id = 1;
|
|
string pre_image = 2;
|
|
}
|
|
|
|
message MyProofOfBurnList {
|
|
repeated MyProofOfBurn my_proof_of_burn = 1;
|
|
}
|
|
|
|
message UnconfirmedBsqChangeOutputList {
|
|
repeated UnconfirmedTxOutput unconfirmed_tx_output = 1;
|
|
}
|
|
|
|
message TempProposalPayload {
|
|
Proposal proposal = 1;
|
|
bytes owner_pub_key_encoded = 2;
|
|
map<string, string> extra_data = 3;
|
|
}
|
|
|
|
message ProposalPayload {
|
|
Proposal proposal = 1;
|
|
bytes hash = 2;
|
|
}
|
|
|
|
message ProposalStore {
|
|
repeated ProposalPayload items = 1;
|
|
}
|
|
|
|
message TempProposalStore {
|
|
repeated ProtectedStorageEntry items = 1;
|
|
}
|
|
|
|
message Ballot {
|
|
Proposal proposal = 1;
|
|
Vote vote = 2;
|
|
}
|
|
|
|
message MyProposalList {
|
|
repeated Proposal proposal = 1;
|
|
}
|
|
|
|
message BallotList {
|
|
repeated Ballot ballot = 1;
|
|
}
|
|
|
|
message ParamChange {
|
|
string param_name = 1;
|
|
string param_value = 2;
|
|
int32 activation_height = 3;
|
|
}
|
|
|
|
message ConfiscateBond {
|
|
string lockup_tx_id = 1;
|
|
}
|
|
|
|
message MyVote {
|
|
int32 height = 1;
|
|
BallotList ballot_list = 2;
|
|
bytes secret_key_encoded = 3;
|
|
BlindVote blind_vote = 4;
|
|
int64 date = 5;
|
|
string reveal_tx_id = 6;
|
|
}
|
|
|
|
message MyVoteList {
|
|
repeated MyVote my_vote = 1;
|
|
}
|
|
|
|
message VoteWithProposalTxId {
|
|
string proposal_tx_id = 1;
|
|
Vote vote = 2;
|
|
}
|
|
|
|
message VoteWithProposalTxIdList {
|
|
repeated VoteWithProposalTxId item = 1;
|
|
}
|
|
|
|
message BlindVote {
|
|
bytes encrypted_votes = 1;
|
|
string tx_id = 2;
|
|
int64 stake = 3;
|
|
bytes encrypted_merit_list = 4;
|
|
int64 date = 5;
|
|
map<string, string> extra_data = 6;
|
|
}
|
|
|
|
message MyBlindVoteList {
|
|
repeated BlindVote blind_vote = 1;
|
|
}
|
|
|
|
message BlindVoteStore {
|
|
repeated BlindVotePayload items = 1;
|
|
}
|
|
|
|
message BlindVotePayload {
|
|
BlindVote blind_vote = 1;
|
|
bytes hash = 2;
|
|
}
|
|
|
|
message Vote {
|
|
bool accepted = 1;
|
|
}
|
|
|
|
message Merit {
|
|
Issuance issuance = 1;
|
|
bytes signature = 2;
|
|
}
|
|
|
|
message MeritList {
|
|
repeated Merit merit = 1;
|
|
}
|
|
|
|
message ProposalVoteResult {
|
|
Proposal proposal = 1;
|
|
int64 stake_of_Accepted_votes = 2;
|
|
int64 stake_of_Rejected_votes = 3;
|
|
int32 num_accepted_votes = 4;
|
|
int32 num_rejected_votes = 5;
|
|
int32 num_ignored_votes = 6;
|
|
}
|
|
|
|
message EvaluatedProposal {
|
|
bool is_accepted = 1;
|
|
ProposalVoteResult proposal_vote_result = 2;
|
|
}
|
|
|
|
message DecryptedBallotsWithMerits {
|
|
bytes hash_of_blind_vote_list = 1;
|
|
string blind_vote_tx_id = 2;
|
|
string vote_reveal_tx_id = 3;
|
|
int64 stake = 4;
|
|
BallotList ballot_list = 5;
|
|
MeritList merit_list = 6;
|
|
}
|
|
|
|
message DaoStateStore {
|
|
DaoState dao_state = 1;
|
|
repeated DaoStateHash dao_state_hash = 2;
|
|
}
|
|
|
|
message DaoStateHash {
|
|
int32 height = 1;
|
|
bytes hash = 2;
|
|
bytes prev_hash = 3;
|
|
}
|
|
|
|
message ProposalStateHash {
|
|
int32 height = 1;
|
|
bytes hash = 2;
|
|
bytes prev_hash = 3;
|
|
int32 num_proposals = 4;
|
|
}
|
|
|
|
message BlindVoteStateHash {
|
|
int32 height = 1;
|
|
bytes hash = 2;
|
|
bytes prev_hash = 3;
|
|
int32 num_blind_votes = 4;
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////
|
|
// Misc
|
|
///////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
message BlockChainExplorer {
|
|
string name = 1;
|
|
string tx_url = 2;
|
|
string address_url = 3;
|
|
}
|
|
|
|
message PaymentAccount {
|
|
string id = 1;
|
|
int64 creation_date = 2;
|
|
PaymentMethod payment_method = 3;
|
|
string account_name = 4;
|
|
repeated TradeCurrency trade_currencies = 5;
|
|
TradeCurrency selected_trade_currency = 6;
|
|
PaymentAccountPayload payment_account_payload = 7;
|
|
}
|
|
|
|
message PaymentMethod {
|
|
string id = 1;
|
|
int64 max_trade_period = 2;
|
|
int64 max_trade_limit = 3;
|
|
}
|
|
|
|
// Currency
|
|
|
|
message Currency {
|
|
string currency_code = 1;
|
|
}
|
|
|
|
message TradeCurrency {
|
|
string code = 1;
|
|
string name = 2;
|
|
oneof message {
|
|
CryptoCurrency crypto_currency = 3;
|
|
FiatCurrency fiat_currency = 4;
|
|
}
|
|
}
|
|
|
|
message CryptoCurrency {
|
|
bool is_asset = 1;
|
|
}
|
|
|
|
message FiatCurrency {
|
|
Currency currency = 1;
|
|
}
|
|
|
|
message Country {
|
|
string code = 1;
|
|
string name = 2;
|
|
Region region = 3;
|
|
}
|
|
|
|
message Region {
|
|
string code = 1;
|
|
string name = 2;
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////
|
|
// Notifications
|
|
///////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
message PriceAlertFilter {
|
|
string currencyCode = 1;
|
|
int64 high = 2;
|
|
int64 low = 3;
|
|
}
|
|
|
|
message MarketAlertFilter {
|
|
PaymentAccount payment_account = 1;
|
|
int32 trigger_value = 2;
|
|
bool is_buy_offer = 3;
|
|
repeated string alert_ids = 4;
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////
|
|
// Mock
|
|
///////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
message MockMailboxPayload {
|
|
string message = 1;
|
|
NodeAddress sender_node_address = 2;
|
|
string uid = 3;
|
|
}
|
|
|
|
message MockPayload {
|
|
string message_version = 1;
|
|
string message = 2;
|
|
}
|