stack_wallet/lib/services/cashfusion/protocol.dart
2023-07-26 14:07:30 -04:00

59 lines
1.8 KiB
Dart

class Protocol {
static const VERSION = 'alpha13';
static const FUSE_ID = 'FUZ\x00';
// Safety limits to prevent loss of funds / limit fees:
//(Note that if we enter multiply into the same fusion, our limits apply
//separately for each "player".)
//
//Deny server that asks for more than this component feerate (sat/kbyte).
static const MAX_COMPONENT_FEERATE = 5000;
//The largest 'excess fee' that we are willing to pay in a fusion (fees beyond
//those needed to pay for our components' inclusion)
static const MAX_EXCESS_FEE = 10000;
// Even if the server allows more, put at most this many inputs+outputs+blanks
static const MAX_COMPONENTS = 40;
// The largest total fee we are willing to pay (our contribution to transaction
// size should not exceed 7 kB even with 40 largest components).
static const MAX_FEE = MAX_COMPONENT_FEERATE * 7 + MAX_EXCESS_FEE;
// For privacy reasons, don't submit less than this many distinct tx components.
// (distinct tx inputs, and tx outputs)
static const MIN_TX_COMPONENTS = 11;
static const MIN_OUTPUT = 10000;
static const COVERT_CONNECT_TIMEOUT = 15.0;
static const COVERT_CONNECT_WINDOW = 15.0;
static const COVERT_SUBMIT_TIMEOUT = 3.0;
static const COVERT_SUBMIT_WINDOW = 5.0;
static const COVERT_CONNECT_SPARES = 6;
static const MAX_CLOCK_DISCREPANCY = 5.0;
static const WARMUP_TIME = 30.0;
static const WARMUP_SLOP = 3.0;
static const TS_EXPECTING_COMMITMENTS = 3.0;
static const T_START_COMPS = 5.0;
static const TS_EXPECTING_COVERT_COMPONENTS = 15.0;
static const T_START_SIGS = 20.0;
static const TS_EXPECTING_COVERT_SIGNATURES = 30.0;
static const T_EXPECTING_CONCLUSION = 35.0;
static const T_START_CLOSE = 45.0;
static const T_START_CLOSE_BLAME = 80.0;
static const STANDARD_TIMEOUT = 3.0;
static const BLAME_VERIFY_TIME = 5.0;
}