problem: outdated protobuf definitions w/o Fee Estimation
This commit is contained in:
@@ -10,6 +10,11 @@ service Blockchain {
|
|||||||
|
|
||||||
rpc GetBalance (BalanceRequest) returns (stream AddressBalance) {}
|
rpc GetBalance (BalanceRequest) returns (stream AddressBalance) {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fee Estimation service. The server tries to estimate a fair fee based on the last N blocks.
|
||||||
|
*/
|
||||||
|
rpc EstimateFee (EstimateFeeRequest) returns (EstimateFeeResponse) {}
|
||||||
|
|
||||||
rpc NativeCall (NativeCallRequest) returns (stream NativeCallReplyItem) {}
|
rpc NativeCall (NativeCallRequest) returns (stream NativeCallReplyItem) {}
|
||||||
rpc NativeSubscribe (NativeSubscribeRequest) returns (stream NativeSubscribeReplyItem) {}
|
rpc NativeSubscribe (NativeSubscribeRequest) returns (stream NativeSubscribeReplyItem) {}
|
||||||
|
|
||||||
@@ -172,4 +177,80 @@ message NotSelector {
|
|||||||
|
|
||||||
message ExistsSelector {
|
message ExistsSelector {
|
||||||
string name = 1;
|
string name = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Request for Fee Estimation Service
|
||||||
|
*/
|
||||||
|
message EstimateFeeRequest {
|
||||||
|
// Target chain
|
||||||
|
ChainRef chain = 1;
|
||||||
|
// The way how the fee should be estimated
|
||||||
|
FeeEstimationMode mode = 2;
|
||||||
|
// How many blocks the server is supposed to use to estimate current fee. Note that the server may use value, depending on configuration
|
||||||
|
uint32 blocks = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Responset for Fee Estimation Service
|
||||||
|
*/
|
||||||
|
message EstimateFeeResponse {
|
||||||
|
// May return different struct, depending on the blockchain
|
||||||
|
oneof fee_type {
|
||||||
|
// Standard Ethereum Fee, supported by majority of forks and by Ethereum Mainnet before EIP-1559
|
||||||
|
EthereumStdFees ethereumStd = 1;
|
||||||
|
// Ethereum Fee for EIP-1559 compatible forks
|
||||||
|
EthereumExtFees ethereumExtended = 2;
|
||||||
|
// Standard Bitcoin Fee
|
||||||
|
BitcoinStdFees bitcoinStd = 3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The mode of how the fee must be estimated
|
||||||
|
*/
|
||||||
|
enum FeeEstimationMode {
|
||||||
|
INVALID = 0;
|
||||||
|
// Average over last transaction in each block
|
||||||
|
AVG_LAST = 1;
|
||||||
|
// Average over transaction 5th from the end in each block
|
||||||
|
AVG_T5 = 2;
|
||||||
|
// Average over transaction 20th from the end in each block
|
||||||
|
AVG_T20 = 3;
|
||||||
|
// Average over transaction 50th from the end in each block
|
||||||
|
AVG_T50 = 4;
|
||||||
|
// Minimal fee that would be accepted by every last block
|
||||||
|
MIN_ALWAYS = 5;
|
||||||
|
// Average over transaction in the middle of each block
|
||||||
|
AVG_MIDDLE = 6;
|
||||||
|
// Average over transaction in head of each block. Note that for Bitcoin it doesn't count COINBASE tx as top tx.
|
||||||
|
AVG_TOP = 7;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Standard Ethereum Fee, supported by majority of forks and by Ethereum Mainnet before EIP-1559
|
||||||
|
*/
|
||||||
|
message EthereumStdFees {
|
||||||
|
// Fee value in Wei
|
||||||
|
string fee = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ethereum Fee for EIP-1559 compatible forks
|
||||||
|
*/
|
||||||
|
message EthereumExtFees {
|
||||||
|
// Estimated fee that would be actually paid. I.e. it's the Base Fee + Priority Fee
|
||||||
|
string expect = 1;
|
||||||
|
// Priority Fee in Wei
|
||||||
|
string priority = 2;
|
||||||
|
// Max Fee value in Wei. Note that it only indicated current preference and actual Max may be significantly lower, depending on the usage scenario.
|
||||||
|
string max = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Standard Bitcoin Fee
|
||||||
|
*/
|
||||||
|
message BitcoinStdFees {
|
||||||
|
// Fee in Satoshi per Kilobyte. Note that the actual fee calculation MUST divide it by 1024 at the last step to get a fair fee.
|
||||||
|
string satPerKb = 1;
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user