mirror of
https://github.com/serai-dex/serai.git
synced 2025-12-09 04:39:24 +00:00
Bulletproofs+ (#70)
* Initial stab at Bulletproofs+ Does move around the existing Bulletproofs code, does still work as expected. * Make the Clsag RCTPrunable type work with BP and BP+ * Initial set of BP+ bug fixes * Further bug fixes * Remove RING_LEN as a constant * Monero v16 TX support Doesn't implement view tags, nor going back to v14, nor the updated BP clawback logic. * Support v14 and v16 at the same time
This commit is contained in:
@@ -10,7 +10,7 @@ use monero::{
|
||||
};
|
||||
|
||||
use monero_serai::{
|
||||
random_scalar,
|
||||
Protocol, random_scalar,
|
||||
rpc::{EmptyResponse, RpcError, Rpc},
|
||||
};
|
||||
|
||||
@@ -29,8 +29,10 @@ pub async fn rpc() -> Rpc {
|
||||
)
|
||||
.to_string();
|
||||
|
||||
// Mine 10 blocks so we have 10 decoys so decoy selection doesn't fail
|
||||
// Mine 20 blocks to ensure decoy availability
|
||||
mine_block(&rpc, &addr).await.unwrap();
|
||||
mine_block(&rpc, &addr).await.unwrap();
|
||||
assert!(!matches!(rpc.get_protocol().await.unwrap(), Protocol::Unsupported));
|
||||
|
||||
rpc
|
||||
}
|
||||
|
||||
@@ -115,12 +115,12 @@ async fn send_core(test: usize, multisig: bool) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// We actually need 80 decoys for this transaction, so mine until then
|
||||
// 80 + 60 (miner TX maturity) + 10 (lock blocks)
|
||||
// We actually need 120 decoys for this transaction, so mine until then
|
||||
// 120 + 60 (miner TX maturity) + 10 (lock blocks)
|
||||
// It is possible for this to be lower, by noting maturity is sufficient regardless of lock
|
||||
// blocks, yet that's not currently implemented
|
||||
// TODO, if we care
|
||||
while rpc.get_height().await.unwrap() < 160 {
|
||||
while rpc.get_height().await.unwrap() < 200 {
|
||||
mine_block(&rpc, &addr.to_string()).await.unwrap();
|
||||
}
|
||||
|
||||
@@ -132,9 +132,14 @@ async fn send_core(test: usize, multisig: bool) {
|
||||
}
|
||||
}
|
||||
|
||||
let mut signable =
|
||||
SignableTransaction::new(outputs, vec![(addr, amount - 10000000000)], Some(addr), fee)
|
||||
.unwrap();
|
||||
let mut signable = SignableTransaction::new(
|
||||
rpc.get_protocol().await.unwrap(),
|
||||
outputs,
|
||||
vec![(addr, amount - 10000000000)],
|
||||
Some(addr),
|
||||
fee,
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
if !multisig {
|
||||
tx = Some(signable.sign(&mut OsRng, &rpc, &spend).await.unwrap());
|
||||
|
||||
Reference in New Issue
Block a user