update to haveno 1.6.2 (#1)

add ui poc screenshot
separate instructions to update protobuf client
This commit is contained in:
woodser 2021-05-05 14:03:43 -04:00 committed by GitHub
parent da818b8709
commit 4dd6fab818
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 18152 additions and 1080 deletions

View File

@ -4,13 +4,21 @@ A proof of concept to fetch and render data from Haveno's daemon in ReactJS.
This application is a basic [create-react-app](https://github.com/facebook/create-react-app) with typescript using [grpc-web](https://github.com/grpc/grpc-web) and a proxy ([envoy](https://www.envoyproxy.io/)) for Haveno's gRPC daemon. This application is a basic [create-react-app](https://github.com/facebook/create-react-app) with typescript using [grpc-web](https://github.com/grpc/grpc-web) and a proxy ([envoy](https://www.envoyproxy.io/)) for Haveno's gRPC daemon.
# How to Run in a Browser ## How to Run in a Browser
1. [Run a local Haveno test network](https://github.com/woodser/haveno#running-a-local-haveno-test-network) except replace `./bisq-desktop` with `./bisq-daemon` when starting the arbitrator, Alice, and Bob. 1. [Run a local Haveno test network](https://github.com/woodser/haveno#running-a-local-haveno-test-network) except replace `./bisq-desktop` with `./bisq-daemon` when starting Alice at port 9999.
2. `git clone https://github.com/haveno-dex/haveno-ui-poc` 2. `git clone https://github.com/haveno-dex/haveno-ui-poc`
3. `./bin/build_protobuf.sh`
4. Start envoy with the config in ./config/envoy.yaml<br> 4. Start envoy with the config in ./config/envoy.yaml<br>
Example: `docker run --rm -it -v ~/git/haveno-ui-poc/config/envoy.yaml:/envoy.yaml -p 8080:8080 envoyproxy/envoy-dev:8a2143613d43d17d1eb35a24b4a4a4c432215606 -c /envoy.yaml` Example: `docker run --rm -it -v ~/git/haveno-ui-poc/config/envoy.yaml:/envoy.yaml -p 8080:8080 envoyproxy/envoy-dev:8a2143613d43d17d1eb35a24b4a4a4c432215606 -c /envoy.yaml`
5. `npm install` 5. `npm install`
6. `npm start` to open http://localhost:3000 in a browser 6. `npm start` to open http://localhost:3000 in a browser
7. Confirm that the Haveno daemon version is displayed (1.3.9). 7. Confirm that the Haveno daemon version is displayed (1.6.2)
<p align="center">
<img src="haveno-ui-poc.png" width="400" height="400"/><br>
</p>
## How to Update the Protobuf Client
1. Copy grpc.proto and pb.proto from Haveno's [protobuf definitions](https://github.com/haveno-dex/haveno/tree/master/proto/src/main/proto) to ./config.
2. `./bin/build_protobuf.sh`

View File

@ -40,15 +40,56 @@ message RegisterDisputeAgentRequest {
message RegisterDisputeAgentReply { message RegisterDisputeAgentReply {
} }
///////////////////////////////////////////////////////////////////////////////////////////
// Help
///////////////////////////////////////////////////////////////////////////////////////////
service Help {
rpc GetMethodHelp (GetMethodHelpRequest) returns (GetMethodHelpReply) {
}
}
message GetMethodHelpRequest {
string methodName = 1;
}
message GetMethodHelpReply {
string methodHelp = 1;
}
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
// Offers // Offers
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
service Offers { service Offers {
rpc GetOffer (GetOfferRequest) returns (GetOfferReply) {
}
rpc GetMyOffer (GetMyOfferRequest) returns (GetMyOfferReply) {
}
rpc GetOffers (GetOffersRequest) returns (GetOffersReply) { rpc GetOffers (GetOffersRequest) returns (GetOffersReply) {
} }
rpc GetMyOffers (GetMyOffersRequest) returns (GetMyOffersReply) {
}
rpc CreateOffer (CreateOfferRequest) returns (CreateOfferReply) { rpc CreateOffer (CreateOfferRequest) returns (CreateOfferReply) {
} }
rpc CancelOffer (CancelOfferRequest) returns (CancelOfferReply) {
}
}
message GetOfferRequest {
string id = 1;
}
message GetOfferReply {
OfferInfo offer = 1;
}
message GetMyOfferRequest {
string id = 1;
}
message GetMyOfferReply {
OfferInfo offer = 1;
} }
message GetOffersRequest { message GetOffersRequest {
@ -60,6 +101,15 @@ message GetOffersReply {
repeated OfferInfo offers = 1; repeated OfferInfo offers = 1;
} }
message GetMyOffersRequest {
string direction = 1;
string currencyCode = 2;
}
message GetMyOffersReply {
repeated OfferInfo offers = 1;
}
message CreateOfferRequest { message CreateOfferRequest {
string currencyCode = 1; string currencyCode = 1;
string direction = 2; string direction = 2;
@ -69,13 +119,22 @@ message CreateOfferRequest {
uint64 amount = 6; uint64 amount = 6;
uint64 minAmount = 7; uint64 minAmount = 7;
double buyerSecurityDeposit = 8; double buyerSecurityDeposit = 8;
string paymentAccountId = 9; uint64 triggerPrice = 9;
string paymentAccountId = 10;
string makerFeeCurrencyCode = 11;
} }
message CreateOfferReply { message CreateOfferReply {
OfferInfo offer = 1; OfferInfo offer = 1;
} }
message CancelOfferRequest {
string id = 1;
}
message CancelOfferReply {
}
message OfferInfo { message OfferInfo {
string id = 1; string id = 1;
string direction = 2; string direction = 2;
@ -87,12 +146,24 @@ message OfferInfo {
uint64 volume = 8; uint64 volume = 8;
uint64 minVolume = 9; uint64 minVolume = 9;
uint64 buyerSecurityDeposit = 10; uint64 buyerSecurityDeposit = 10;
string paymentAccountId = 11; // only used when creating offer uint64 triggerPrice = 11;
string paymentMethodId = 12; bool isCurrencyForMakerFeeBtc = 12;
string paymentMethodShortName = 13; string paymentAccountId = 13;
string baseCurrencyCode = 14; string paymentMethodId = 14;
string counterCurrencyCode = 15; string paymentMethodShortName = 15;
uint64 date = 16; string baseCurrencyCode = 16;
string counterCurrencyCode = 17;
uint64 date = 18;
string state = 19;
uint64 sellerSecurityDeposit = 20;
string offerFeePaymentTxId = 21;
uint64 txFee = 22;
uint64 makerFee = 23;
}
message AvailabilityResultWithDescription {
AvailabilityResult availabilityResult = 1;
string description = 2;
} }
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
@ -104,17 +175,22 @@ service PaymentAccounts {
} }
rpc GetPaymentAccounts (GetPaymentAccountsRequest) returns (GetPaymentAccountsReply) { rpc GetPaymentAccounts (GetPaymentAccountsRequest) returns (GetPaymentAccountsReply) {
} }
rpc GetPaymentMethods (GetPaymentMethodsRequest) returns (GetPaymentMethodsReply) {
}
rpc GetPaymentAccountForm (GetPaymentAccountFormRequest) returns (GetPaymentAccountFormReply) {
}
rpc CreateCryptoCurrencyPaymentAccount (CreateCryptoCurrencyPaymentAccountRequest) returns (CreateCryptoCurrencyPaymentAccountReply) {
}
rpc GetCryptoCurrencyPaymentMethods (GetCryptoCurrencyPaymentMethodsRequest) returns (GetCryptoCurrencyPaymentMethodsReply) {
}
} }
message CreatePaymentAccountRequest { message CreatePaymentAccountRequest {
string paymentMethodId = 1; string paymentAccountForm = 1;
string accountName = 2;
string accountNumber = 3;
// TODO Support all currencies. Maybe add a repeated and if only one is used its a singletonList.
string currencyCode = 4;
} }
message CreatePaymentAccountReply { message CreatePaymentAccountReply {
PaymentAccount paymentAccount = 1;
} }
message GetPaymentAccountsRequest { message GetPaymentAccountsRequest {
@ -124,6 +200,39 @@ message GetPaymentAccountsReply {
repeated PaymentAccount paymentAccounts = 1; repeated PaymentAccount paymentAccounts = 1;
} }
message GetPaymentMethodsRequest {
}
message GetPaymentMethodsReply {
repeated PaymentMethod paymentMethods = 1;
}
message GetPaymentAccountFormRequest {
string paymentMethodId = 1;
}
message GetPaymentAccountFormReply {
string paymentAccountFormJson = 1;
}
message CreateCryptoCurrencyPaymentAccountRequest {
string accountName = 1;
string currencyCode = 2;
string address = 3;
bool tradeInstant = 4;
}
message CreateCryptoCurrencyPaymentAccountReply {
PaymentAccount paymentAccount = 1;
}
message GetCryptoCurrencyPaymentMethodsRequest {
}
message GetCryptoCurrencyPaymentMethodsReply {
repeated PaymentMethod paymentMethods = 1;
}
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
// Price // Price
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
@ -154,7 +263,165 @@ message GetTradeStatisticsRequest {
} }
message GetTradeStatisticsReply { message GetTradeStatisticsReply {
repeated TradeStatistics2 TradeStatistics = 1; repeated TradeStatistics3 TradeStatistics = 1;
}
///////////////////////////////////////////////////////////////////////////////////////////
// Shutdown
///////////////////////////////////////////////////////////////////////////////////////////
service ShutdownServer {
rpc Stop (StopRequest) returns (StopReply) {
}
}
message StopRequest {
}
message StopReply {
}
///////////////////////////////////////////////////////////////////////////////////////////
// Trades
///////////////////////////////////////////////////////////////////////////////////////////
service Trades {
rpc GetTrade (GetTradeRequest) returns (GetTradeReply) {
}
rpc TakeOffer (TakeOfferRequest) returns (TakeOfferReply) {
}
rpc ConfirmPaymentStarted (ConfirmPaymentStartedRequest) returns (ConfirmPaymentStartedReply) {
}
rpc ConfirmPaymentReceived (ConfirmPaymentReceivedRequest) returns (ConfirmPaymentReceivedReply) {
}
rpc KeepFunds (KeepFundsRequest) returns (KeepFundsReply) {
}
rpc WithdrawFunds (WithdrawFundsRequest) returns (WithdrawFundsReply) {
}
}
message TakeOfferRequest {
string offerId = 1;
string paymentAccountId = 2;
string takerFeeCurrencyCode = 3;
}
message TakeOfferReply {
TradeInfo trade = 1;
AvailabilityResultWithDescription failureReason = 2;
}
message ConfirmPaymentStartedRequest {
string tradeId = 1;
}
message ConfirmPaymentStartedReply {
}
message ConfirmPaymentReceivedRequest {
string tradeId = 1;
}
message ConfirmPaymentReceivedReply {
}
message GetTradeRequest {
string tradeId = 1;
}
message GetTradeReply {
TradeInfo trade = 1;
}
message KeepFundsRequest {
string tradeId = 1;
}
message KeepFundsReply {
}
message WithdrawFundsRequest {
string tradeId = 1;
string address = 2;
string memo = 3;
}
message WithdrawFundsReply {
}
message TradeInfo {
OfferInfo offer = 1;
string tradeId = 2;
string shortId = 3;
uint64 date = 4;
string role = 5;
uint64 txFeeAsLong = 7;
uint64 takerFeeAsLong = 8;
string takerFeeTxId = 9;
reserved 10; // was depositTxId
string payoutTxId = 11;
uint64 tradeAmountAsLong = 12;
uint64 tradePrice = 13;
string tradingPeerNodeAddress = 14;
string state = 15;
string phase = 16;
string tradePeriodState = 17;
bool isDepositPublished = 18;
bool isDepositConfirmed = 19;
bool isFiatSent = 20;
bool isFiatReceived = 21;
bool isPayoutPublished = 22;
bool isWithdrawn = 23;
string contractAsJson = 24;
ContractInfo contract = 25;
string makerDepositTxId = 100;
string takerDepositTxId = 101;
}
message ContractInfo {
string buyerNodeAddress = 1;
string sellerNodeAddress = 2;
reserved 3; // was mediatorNodeAddress
reserved 4; // was refundAgendNodeAddress
bool isBuyerMakerAndSellerTaker = 5;
string makerAccountId = 6;
string takerAccountId = 7;
PaymentAccountPayloadInfo makerPaymentAccountPayload = 8;
PaymentAccountPayloadInfo takerPaymentAccountPayload = 9;
string makerPayoutAddressString = 10;
string takerPayoutAddressString = 11;
uint64 lockTime = 12;
string arbitratorNodeAddress = 100;
}
message PaymentAccountPayloadInfo {
string id = 1;
string paymentMethodId = 2;
string address = 3;
}
///////////////////////////////////////////////////////////////////////////////////////////
// Transactions
///////////////////////////////////////////////////////////////////////////////////////////
message TxFeeRateInfo {
bool useCustomTxFeeRate = 1;
uint64 customTxFeeRate = 2;
uint64 feeServiceRate = 3;
uint64 lastFeeServiceRequestTs = 4;
uint64 minFeeServiceRate = 5;
}
message TxInfo {
string txId = 1;
uint64 inputSum = 2;
uint64 outputSum = 3;
uint64 fee = 4;
int32 size = 5;
bool isPending = 6;
string memo = 7;
} }
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
@ -162,10 +429,26 @@ message GetTradeStatisticsReply {
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
service Wallets { service Wallets {
rpc GetBalance (GetBalanceRequest) returns (GetBalanceReply) { rpc GetBalances (GetBalancesRequest) returns (GetBalancesReply) {
} }
rpc GetAddressBalance (GetAddressBalanceRequest) returns (GetAddressBalanceReply) { rpc GetAddressBalance (GetAddressBalanceRequest) returns (GetAddressBalanceReply) {
} }
rpc GetUnusedBsqAddress (GetUnusedBsqAddressRequest) returns (GetUnusedBsqAddressReply) {
}
rpc SendBsq (SendBsqRequest) returns (SendBsqReply) {
}
rpc SendBtc (SendBtcRequest) returns (SendBtcReply) {
}
rpc VerifyBsqSentToAddress (VerifyBsqSentToAddressRequest) returns (VerifyBsqSentToAddressReply) {
}
rpc GetTxFeeRate (GetTxFeeRateRequest) returns (GetTxFeeRateReply) {
}
rpc SetTxFeeRatePreference (SetTxFeeRatePreferenceRequest) returns (SetTxFeeRatePreferenceReply) {
}
rpc UnsetTxFeeRatePreference (UnsetTxFeeRatePreferenceRequest) returns (UnsetTxFeeRatePreferenceReply) {
}
rpc GetTransaction (GetTransactionRequest) returns (GetTransactionReply) {
}
rpc GetFundingAddresses (GetFundingAddressesRequest) returns (GetFundingAddressesReply) { rpc GetFundingAddresses (GetFundingAddressesRequest) returns (GetFundingAddressesReply) {
} }
rpc SetWalletPassword (SetWalletPasswordRequest) returns (SetWalletPasswordReply) { rpc SetWalletPassword (SetWalletPasswordRequest) returns (SetWalletPasswordReply) {
@ -178,11 +461,12 @@ service Wallets {
} }
} }
message GetBalanceRequest { message GetBalancesRequest {
string currencyCode = 1;
} }
message GetBalanceReply { message GetBalancesReply {
uint64 balance = 1; BalancesInfo balances = 1;
} }
message GetAddressBalanceRequest { message GetAddressBalanceRequest {
@ -193,6 +477,73 @@ message GetAddressBalanceReply {
AddressBalanceInfo addressBalanceInfo = 1; AddressBalanceInfo addressBalanceInfo = 1;
} }
message GetUnusedBsqAddressRequest {
}
message GetUnusedBsqAddressReply {
string address = 1;
}
message SendBsqRequest {
string address = 1;
string amount = 2;
string txFeeRate = 3;
}
message SendBsqReply {
TxInfo txInfo = 1;
}
message SendBtcRequest {
string address = 1;
string amount = 2;
string txFeeRate = 3;
string memo = 4;
}
message SendBtcReply {
TxInfo txInfo = 1;
}
message VerifyBsqSentToAddressRequest {
string address = 1;
string amount = 2;
}
message VerifyBsqSentToAddressReply {
bool isAmountReceived = 1;
}
message GetTxFeeRateRequest {
}
message GetTxFeeRateReply {
TxFeeRateInfo txFeeRateInfo = 1;
}
message SetTxFeeRatePreferenceRequest {
uint64 txFeeRatePreference = 1;
}
message SetTxFeeRatePreferenceReply {
TxFeeRateInfo txFeeRateInfo = 1;
}
message UnsetTxFeeRatePreferenceRequest {
}
message UnsetTxFeeRatePreferenceReply {
TxFeeRateInfo txFeeRateInfo = 1;
}
message GetTransactionRequest {
string txId = 1;
}
message GetTransactionReply {
TxInfo txInfo = 1;
}
message GetFundingAddressesRequest { message GetFundingAddressesRequest {
} }
@ -229,10 +580,35 @@ message UnlockWalletRequest {
message UnlockWalletReply { message UnlockWalletReply {
} }
message BalancesInfo {
// Field names are shortened for readability's sake, i.e.,
// balancesInfo.getBtc().getAvailableBalance() is cleaner than
// balancesInfo.getBtcBalanceInfo().getAvailableBalance().
BsqBalanceInfo bsq = 1;
BtcBalanceInfo btc = 2;
}
message BsqBalanceInfo {
uint64 availableConfirmedBalance = 1;
uint64 unverifiedBalance = 2;
uint64 unconfirmedChangeBalance = 3;
uint64 lockedForVotingBalance = 4;
uint64 lockupBondsBalance = 5;
uint64 unlockingBondsBalance = 6;
}
message BtcBalanceInfo {
uint64 availableBalance = 1;
uint64 reservedBalance = 2;
uint64 totalAvailableBalance = 3;
uint64 lockedBalance = 4;
}
message AddressBalanceInfo { message AddressBalanceInfo {
string address = 1; string address = 1;
int64 balance = 2; int64 balance = 2;
int64 numConfirmations = 3; int64 numConfirmations = 3;
bool isAddressUnused = 4;
} }
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
@ -250,4 +626,3 @@ message GetVersionRequest {
message GetVersionReply { message GetVersionReply {
string version = 1; string version = 1;
} }

View File

@ -78,6 +78,9 @@ message NetworkEnvelope {
RefreshTradeStateRequest refresh_trade_state_request = 50 [deprecated = true]; RefreshTradeStateRequest refresh_trade_state_request = 50 [deprecated = true];
TraderSignedWitnessMessage trader_signed_witness_message = 51 [deprecated = true]; TraderSignedWitnessMessage trader_signed_witness_message = 51 [deprecated = true];
GetInventoryRequest get_inventory_request = 52;
GetInventoryResponse get_inventory_response = 53;
InitTradeRequest init_trade_request = 1001; InitTradeRequest init_trade_request = 1001;
MakerReadyToFundMultisigRequest maker_ready_to_fund_multisig_request = 1002; MakerReadyToFundMultisigRequest maker_ready_to_fund_multisig_request = 1002;
@ -146,6 +149,16 @@ message Pong {
int32 request_nonce = 1; int32 request_nonce = 1;
} }
// Inventory
message GetInventoryRequest {
string version = 1;
}
message GetInventoryResponse {
map<string, string> inventory = 1;
}
// offer // offer
message OfferAvailabilityRequest { message OfferAvailabilityRequest {
@ -154,6 +167,7 @@ message OfferAvailabilityRequest {
int64 takers_trade_price = 3; int64 takers_trade_price = 3;
repeated int32 supported_capabilities = 4; repeated int32 supported_capabilities = 4;
string uid = 5; string uid = 5;
bool is_taker_api_user = 6;
} }
message OfferAvailabilityResponse { message OfferAvailabilityResponse {
@ -334,13 +348,15 @@ message DelayedPayoutTxSignatureRequest {
string trade_id = 2; string trade_id = 2;
NodeAddress sender_node_address = 3; NodeAddress sender_node_address = 3;
bytes delayed_payout_tx = 4; bytes delayed_payout_tx = 4;
bytes delayed_payout_tx_seller_signature = 5;
} }
message DelayedPayoutTxSignatureResponse { message DelayedPayoutTxSignatureResponse {
string uid = 1; string uid = 1;
string trade_id = 2; string trade_id = 2;
NodeAddress sender_node_address = 3; NodeAddress sender_node_address = 3;
bytes delayed_payout_tx_signature = 4; bytes delayed_payout_tx_buyer_signature = 4;
bytes deposit_tx = 5;
} }
message DepositTxAndDelayedPayoutTxMessage { message DepositTxAndDelayedPayoutTxMessage {
@ -355,10 +371,11 @@ message DepositTxMessage {
string uid = 1; string uid = 1;
string trade_id = 2; string trade_id = 2;
NodeAddress sender_node_address = 3; NodeAddress sender_node_address = 3;
PubKeyRing pub_key_ring = 4; bytes deposit_tx_without_witnesses = 4;
reserved 5; // WAS: bytes deposit_tx = 5; PubKeyRing pub_key_ring = 100;
string trade_fee_tx_id = 6; reserved 5; // WAS: bytes deposit_tx = 101;
string deposit_tx_id = 7; string trade_fee_tx_id = 102;
string deposit_tx_id = 103;
} }
message PeerPublishedDelayedPayoutTxMessage { message PeerPublishedDelayedPayoutTxMessage {
@ -608,9 +625,7 @@ message StoragePayload {
Mediator mediator = 3; Mediator mediator = 3;
Filter filter = 4; Filter filter = 4;
// not used anymore from v0.6 on. But leave it for receiving TradeStatistics objects from older // TradeStatistics trade_statistics = 5 [deprecated = true]; Removed in v.1.4.0
// versions and convert it to TradeStatistics2 objects.
TradeStatistics trade_statistics = 5 [deprecated = true];
MailboxStoragePayload mailbox_storage_payload = 6; MailboxStoragePayload mailbox_storage_payload = 6;
OfferPayload offer_payload = 7; OfferPayload offer_payload = 7;
@ -622,10 +637,11 @@ message StoragePayload {
message PersistableNetworkPayload { message PersistableNetworkPayload {
oneof message { oneof message {
AccountAgeWitness account_age_witness = 1; AccountAgeWitness account_age_witness = 1;
TradeStatistics2 trade_statistics2 = 2; TradeStatistics2 trade_statistics2 = 2 [deprecated = true];
ProposalPayload proposal_payload = 3; ProposalPayload proposal_payload = 3;
BlindVotePayload blind_vote_payload = 4; BlindVotePayload blind_vote_payload = 4;
SignedWitness signed_witness = 5; SignedWitness signed_witness = 5;
TradeStatistics3 trade_statistics3 = 6;
} }
} }
@ -656,6 +672,28 @@ message DataAndSeqNrPair {
int32 sequence_number = 2; 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 // misc
message PrivateNotificationPayload { message PrivateNotificationPayload {
@ -681,6 +719,7 @@ message Alert {
string signature_as_base64 = 4; string signature_as_base64 = 4;
bytes owner_pub_key_bytes = 5; bytes owner_pub_key_bytes = 5;
map<string, string> extra_data = 6; map<string, string> extra_data = 6;
bool is_pre_release_info = 7;
} }
message Arbitrator { message Arbitrator {
@ -722,7 +761,7 @@ message RefundAgent {
} }
message Filter { message Filter {
repeated string banned_node_address = 1; repeated string node_addresses_banned_from_trading = 1;
repeated string banned_offer_ids = 2; repeated string banned_offer_ids = 2;
repeated PaymentAccountFilter banned_payment_accounts = 3; repeated PaymentAccountFilter banned_payment_accounts = 3;
string signature_as_base64 = 4; string signature_as_base64 = 4;
@ -746,48 +785,48 @@ message Filter {
string signer_pub_key_as_hex = 22; string signer_pub_key_as_hex = 22;
repeated string bannedPrivilegedDevPubKeys = 23; repeated string bannedPrivilegedDevPubKeys = 23;
bool disable_auto_conf = 24; 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;
} }
// not used anymore from v0.6 on. But leave it for receiving TradeStatistics objects from older // Deprecated
// versions and convert it to TradeStatistics2 objects.
message TradeStatistics {
string base_currency = 1;
string counter_currency = 2;
OfferPayload.Direction direction = 3;
int64 trade_price = 4;
int64 trade_amount = 5;
int64 trade_date = 6;
string payment_method_id = 7;
int64 offer_date = 8;
bool offer_use_market_based_price = 9;
double offer_market_price_margin = 10;
int64 offer_amount = 11;
int64 offer_min_amount = 12;
string offer_id = 13;
string deposit_tx_id = 14; // Old - string deposit_tx_id = 14;
bytes signature_pub_key_bytes = 15;
map<string, string> extra_data = 16;
}
message TradeStatistics2 { message TradeStatistics2 {
string base_currency = 1; string base_currency = 1 [deprecated = true];
string counter_currency = 2; string counter_currency = 2 [deprecated = true];
OfferPayload.Direction direction = 3; OfferPayload.Direction direction = 3 [deprecated = true];
int64 trade_price = 4; int64 trade_price = 4 [deprecated = true];
int64 trade_amount = 5; int64 trade_amount = 5 [deprecated = true];
int64 trade_date = 6; int64 trade_date = 6 [deprecated = true];
string payment_method_id = 7; string payment_method_id = 7 [deprecated = true];
int64 offer_date = 8; int64 offer_date = 8 [deprecated = true];
bool offer_use_market_based_price = 9; bool offer_use_market_based_price = 9 [deprecated = true];
double offer_market_price_margin = 10; double offer_market_price_margin = 10 [deprecated = true];
int64 offer_amount = 11; int64 offer_amount = 11 [deprecated = true];
int64 offer_min_amount = 12; int64 offer_min_amount = 12 [deprecated = true];
string offer_id = 13; string offer_id = 13 [deprecated = true];
reserved 14; // Old - string deposit_tx_id = 14; string deposit_tx_id = 14 [deprecated = true];
bytes hash = 15; bytes hash = 15 [deprecated = true];
map<string, string> extra_data = 16; map<string, string> extra_data = 16 [deprecated = true];
string maker_deposit_tx_id = 1000; string maker_deposit_tx_id = 100;
string taker_deposit_tx_id = 1001; 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 { message MailboxStoragePayload {
@ -871,6 +910,13 @@ message SignedWitness {
message Dispute { message Dispute {
enum State {
NEEDS_UPGRADE = 0;
NEW = 1;
OPEN = 2;
REOPENED = 3;
CLOSED = 4;
}
string trade_id = 1; string trade_id = 1;
string id = 2; string id = 2;
int32 trader_id = 3; int32 trader_id = 3;
@ -898,7 +944,10 @@ message Dispute {
string mediators_dispute_result = 25; string mediators_dispute_result = 25;
string delayed_payout_tx_id = 26; string delayed_payout_tx_id = 26;
string donation_address_of_delayed_payout_tx = 27; string donation_address_of_delayed_payout_tx = 27;
bool is_opener = 28; State state = 28;
int64 trade_period_end = 29;
map<string, string> extra_data = 30;
bool is_opener = 100;
} }
message Attachment { message Attachment {
@ -991,6 +1040,9 @@ enum AvailabilityResult {
USER_IGNORED = 8; USER_IGNORED = 8;
MISSING_MANDATORY_CAPABILITY = 9; MISSING_MANDATORY_CAPABILITY = 9;
NO_REFUND_AGENTS = 10; NO_REFUND_AGENTS = 10;
UNCONF_TX_LIMIT_HIT = 11;
MAKER_DENIED_API_USER = 12;
PRICE_CHECK_FAILED = 13;
} }
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
@ -1027,6 +1079,10 @@ message PaymentAccountPayload {
AdvancedCashAccountPayload advanced_cash_account_payload = 26; AdvancedCashAccountPayload advanced_cash_account_payload = 26;
InstantCryptoCurrencyAccountPayload instant_crypto_currency_account_payload = 27; InstantCryptoCurrencyAccountPayload instant_crypto_currency_account_payload = 27;
JapanBankAccountPayload japan_bank_account_payload = 28; 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; map<string, string> exclude_from_json_data = 15;
} }
@ -1094,6 +1150,11 @@ message JapanBankAccountPayload {
string bank_account_number = 7; string bank_account_number = 7;
} }
message AustraliaPayidPayload {
string bank_account_name = 1;
string payid = 2;
}
message SpecificBanksAccountPayload { message SpecificBanksAccountPayload {
repeated string accepted_banks = 1; repeated string accepted_banks = 1;
} }
@ -1129,6 +1190,11 @@ message WesternUnionAccountPayload {
string email = 4; string email = 4;
} }
message AmazonGiftCardAccountPayload {
string email_or_mobile_nr = 1;
string country_code = 2;
}
message SepaAccountPayload { message SepaAccountPayload {
string holder_name = 1; string holder_name = 1;
string iban = 2; string iban = 2;
@ -1219,6 +1285,12 @@ message F2FAccountPayload {
string extra_info = 3; string extra_info = 3;
} }
message CashByMailAccountPayload {
string postal_address = 1;
string contact = 2;
string extra_info = 3;
}
message PromptPayAccountPayload { message PromptPayAccountPayload {
string prompt_pay_id = 1; string prompt_pay_id = 1;
} }
@ -1227,6 +1299,10 @@ message AdvancedCashAccountPayload {
string account_nr = 1; string account_nr = 1;
} }
message TransferwiseAccountPayload {
string email = 1;
}
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
// PersistableEnvelope // PersistableEnvelope
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
@ -1252,7 +1328,7 @@ message PersistableEnvelope {
// 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 // 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; AccountAgeWitnessStore account_age_witness_store = 13;
TradeStatistics2Store trade_statistics2_store = 14; TradeStatistics2Store trade_statistics2_store = 14 [deprecated = true];
// PersistableNetworkPayloadList persistable_network_payload_list = 15; // long deprecated & migration away from it is already done // PersistableNetworkPayloadList persistable_network_payload_list = 15; // long deprecated & migration away from it is already done
@ -1271,8 +1347,12 @@ message PersistableEnvelope {
SignedWitnessStore signed_witness_store = 28; SignedWitnessStore signed_witness_store = 28;
MediationDisputeList mediation_dispute_list = 29; MediationDisputeList mediation_dispute_list = 29;
RefundDisputeList refund_dispute_list = 30; 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 = 31; XmrAddressEntryList xmr_address_entry_list = 100;
} }
} }
@ -1313,8 +1393,13 @@ message SignedWitnessStore {
} }
// We use a list not a hash map to save disc space. The hash can be calculated from the payload anyway // We use a list not a hash map to save disc space. The hash can be calculated from the payload anyway
// Deprecated
message TradeStatistics2Store { message TradeStatistics2Store {
repeated TradeStatistics2 items = 1; repeated TradeStatistics2 items = 1 [deprecated = true];
}
message TradeStatistics3Store {
repeated TradeStatistics3 items = 1;
} }
message PeerList { message PeerList {
@ -1341,6 +1426,7 @@ message AddressEntry {
bytes pub_key = 9; bytes pub_key = 9;
bytes pub_key_hash = 10; bytes pub_key_hash = 10;
int64 coin_locked_in_multi_sig = 11; int64 coin_locked_in_multi_sig = 11;
bool segwit = 12;
} }
message XmrAddressEntryList { message XmrAddressEntryList {
@ -1410,6 +1496,7 @@ message OpenOffer {
NodeAddress arbitrator_node_address = 3; NodeAddress arbitrator_node_address = 3;
NodeAddress mediator_node_address = 4; NodeAddress mediator_node_address = 4;
NodeAddress refund_agent_node_address = 5; NodeAddress refund_agent_node_address = 5;
int64 trigger_price = 6;
} }
message Tradable { message Tradable {
@ -1529,13 +1616,14 @@ message Trade {
int64 last_refresh_request_date = 36 [deprecated = true]; int64 last_refresh_request_date = 36 [deprecated = true];
string counter_currency_extra_data = 37; string counter_currency_extra_data = 37;
string asset_tx_proof_result = 38; // name of AssetTxProofResult enum string asset_tx_proof_result = 38; // name of AssetTxProofResult enum
string uid = 39;
NodeAddress taker_node_address = 1000; // TODO (woodser): re-order? need to reset trades NodeAddress taker_node_address = 100;
PubKeyRing taker_pub_key_ring = 1001; PubKeyRing taker_pub_key_ring = 101;
string taker_deposit_tx_id = 1002; string taker_deposit_tx_id = 102;
NodeAddress maker_node_address = 1003; NodeAddress maker_node_address = 103;
PubKeyRing maker_pub_key_ring = 1004; PubKeyRing maker_pub_key_ring = 104;
string maker_deposit_tx_id = 1005; string maker_deposit_tx_id = 105;
} }
message BuyerAsMakerTrade { message BuyerAsMakerTrade {
@ -1675,7 +1763,7 @@ message PreferencesPayload {
bool use_tor_for_bitcoin_j = 12; bool use_tor_for_bitcoin_j = 12;
bool show_own_offers_in_offer_book = 13; bool show_own_offers_in_offer_book = 13;
TradeCurrency preferred_trade_currency = 14; TradeCurrency preferred_trade_currency = 14;
int64 withdrawal_tx_fee_in_bytes = 15; int64 withdrawal_tx_fee_in_vbytes = 15;
bool use_custom_withdrawal_tx_fee = 16; bool use_custom_withdrawal_tx_fee = 16;
double max_price_distance_in_percent = 17; double max_price_distance_in_percent = 17;
string offer_book_chart_screen_currency_code = 18; string offer_book_chart_screen_currency_code = 18;
@ -1717,6 +1805,11 @@ message PreferencesPayload {
int32 css_theme = 54; int32 css_theme = 54;
bool tac_accepted_v120 = 55; bool tac_accepted_v120 = 55;
repeated AutoConfirmSettings auto_confirm_settings = 56; 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 { message AutoConfirmSettings {
@ -1747,6 +1840,7 @@ message UserPayload {
repeated MarketAlertFilter market_alert_filters = 13; repeated MarketAlertFilter market_alert_filters = 13;
repeated RefundAgent accepted_refund_agents = 14; repeated RefundAgent accepted_refund_agents = 14;
RefundAgent registered_refund_agent = 15; RefundAgent registered_refund_agent = 15;
map<string, string> cookie = 16;
} }
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
@ -1895,6 +1989,8 @@ enum ScriptType {
WITNESS_V0_KEYHASH = 6; WITNESS_V0_KEYHASH = 6;
WITNESS_V0_SCRIPTHASH = 7; WITNESS_V0_SCRIPTHASH = 7;
NONSTANDARD = 8; NONSTANDARD = 8;
WITNESS_UNKNOWN = 9;
WITNESS_V1_TAPROOT = 10;
} }
message PubKeyScript { message PubKeyScript {

BIN
haveno-ui-poc.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff