mirror of
https://github.com/serai-dex/serai.git
synced 2025-12-09 04:39:24 +00:00
Prefix arbitrary data with 127
Since we cannot expect/guarantee a payment ID will be included, the previous position-based code for determining arbitrary data wasn't sufficient.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
use monero_serai::{
|
||||
wallet::{TransactionError, extra::MAX_TX_EXTRA_NONCE_SIZE},
|
||||
wallet::{TransactionError, extra::MAX_ARBITRARY_DATA_SIZE},
|
||||
transaction::Transaction,
|
||||
};
|
||||
|
||||
@@ -9,7 +9,7 @@ test!(
|
||||
add_single_data_less_than_max,
|
||||
(
|
||||
|_, mut builder: Builder, addr| async move {
|
||||
let arbitrary_data = vec![b'\0', (MAX_TX_EXTRA_NONCE_SIZE as u8) - 1];
|
||||
let arbitrary_data = vec![b'\0'; MAX_ARBITRARY_DATA_SIZE - 1];
|
||||
|
||||
// make sure we can add to tx
|
||||
let result = builder.add_data(arbitrary_data.clone());
|
||||
@@ -30,7 +30,7 @@ test!(
|
||||
add_multiple_data_less_than_max,
|
||||
(
|
||||
|_, mut builder: Builder, addr| async move {
|
||||
let data = vec![b'\0', (MAX_TX_EXTRA_NONCE_SIZE as u8) - 1];
|
||||
let data = vec![b'\0'; MAX_ARBITRARY_DATA_SIZE - 1];
|
||||
|
||||
// Add tx multiple times
|
||||
for _ in 0 .. 5 {
|
||||
@@ -53,13 +53,14 @@ test!(
|
||||
add_single_data_more_than_max,
|
||||
(
|
||||
|_, mut builder: Builder, addr| async move {
|
||||
// Make a data that is bigger than 255 bytes
|
||||
let mut data = vec![b'a'; MAX_TX_EXTRA_NONCE_SIZE + 1];
|
||||
// Make a data that is bigger than the maximum
|
||||
let mut data = vec![b'a'; MAX_ARBITRARY_DATA_SIZE + 1];
|
||||
|
||||
// Make sure we get an error if we try to add it to the TX
|
||||
assert_eq!(builder.add_data(data.clone()), Err(TransactionError::TooMuchData));
|
||||
|
||||
// Reduce data size and retry. The data will now be 255 bytes long, exactly
|
||||
// Reduce data size and retry. The data will now be 255 bytes long (including the added
|
||||
// marker), exactly
|
||||
data.pop();
|
||||
assert!(builder.add_data(data.clone()).is_ok());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user