Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions crates/assets/src/asset.rs
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ pub mod v1 {
/// The minimum length of a valid asset ID reference.
pub const MINIMUM_REFERENCE_LENGTH: usize = 1;
/// The maximum length of a valid asset ID reference.
pub const MAXIMUM_REFERENCE_LENGTH: usize = 64;
pub const MAXIMUM_REFERENCE_LENGTH: usize = 128;
const MAXIMUM_REFERENCE_LENGTH_U32: u32 = MAXIMUM_REFERENCE_LENGTH as u32;
/// The minimum length of a valid asset ID identifier.
pub const MINIMUM_IDENTIFIER_LENGTH: usize = 1;
Expand Down Expand Up @@ -604,7 +604,7 @@ pub mod v1 {
check_reference_length_bounds(input)?;

input.iter().try_for_each(|c| {
if !matches!(c, b'-' | b'a'..=b'z' | b'A'..=b'Z' | b'0'..=b'9') {
if !matches!(c, b'-' | b'.' | b'%' | b'a'..=b'z' | b'A'..=b'Z' | b'0'..=b'9') {
log::trace!("Provided input has some invalid values as expected by a generic asset reference.");
Err(ReferenceError::InvalidFormat)
} else {
Expand Down Expand Up @@ -653,7 +653,7 @@ pub mod v1 {
check_identifier_length_bounds(input)?;

input.iter().try_for_each(|c| {
if !matches!(c, b'-' | b'a'..=b'z' | b'A'..=b'Z' | b'0'..=b'9') {
if !matches!(c, b'-' | b'.' | b'%' | b'a'..=b'z' | b'A'..=b'Z' | b'0'..=b'9') {
log::trace!("Provided input has some invalid values as expected by a generic asset identifier.");
Err(IdentifierError::InvalidFormat)
} else {
Expand Down Expand Up @@ -727,7 +727,7 @@ pub mod v1 {
"slip44:›",
"slip44:😁",
// Max chars + 1
"slip44:99999999999999999999999999999999999999999999999999999999999999999",
"slip44:999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999",
];
for asset in invalid_assets {
assert!(
Expand Down Expand Up @@ -899,7 +899,7 @@ pub mod v1 {
let valid_assets = [
"123:a",
"12345678:-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-",
"12345678:-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-:-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345678901234567890123-",
"12345678:-.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789%-:-.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890123456789012%",
"para:411f057b9107718c9624d6aa4a3f23c1",
"para:kilt-spiritnet",
"w3n:john-doe",
Expand Down Expand Up @@ -928,7 +928,7 @@ pub mod v1 {
"valid:valid:",
// Too long
"too-loong:valid",
"valid:too-loooooooooooooooooooooooooooooooooooooooooooooooooooooooooong",
"valid:too-loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong",
"valid:valid:too-loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong",
// Wrong characters
"no-val!d:valid",
Expand Down
3 changes: 2 additions & 1 deletion crates/assets/src/chain.rs
Original file line number Diff line number Diff line change
Expand Up @@ -591,7 +591,7 @@ mod v1 {
check_reference_length_bounds(input)?;

input.iter().try_for_each(|c| {
if !matches!(c, b'-' | b'a'..=b'z' | b'A'..=b'Z' | b'0'..=b'9') {
if !matches!(c, b'-' | b'_' | b'a'..=b'z' | b'A'..=b'Z' | b'0'..=b'9') {
log::trace!("Provided input has some invalid values as expected by a generic chain reference.");
Err(ReferenceError::InvalidFormat)
} else {
Expand Down Expand Up @@ -806,6 +806,7 @@ mod v1 {
let valid_chains = [
// Edge cases
"abc:-",
"abc:_",
"-as01-aa:A",
"12345678:abcdefghjklmnopqrstuvwxyzABCD012",
// Filecoin examples -> https://github.com/ChainAgnostic/CAIPs/blob/master/CAIPs/caip-23.md
Expand Down
2 changes: 1 addition & 1 deletion runtimes/common/src/constants.rs
Original file line number Diff line number Diff line change
Expand Up @@ -437,7 +437,7 @@ pub mod public_credentials {
use super::*;

/// The size is checked in the runtime by a test.
pub const MAX_PUBLIC_CREDENTIAL_STORAGE_LENGTH: u32 = 355;
pub const MAX_PUBLIC_CREDENTIAL_STORAGE_LENGTH: u32 = 419;
// Each credential would have a different deposit, so no multiplier here
pub const PUBLIC_CREDENTIAL_DEPOSIT: Balance = deposit(1, MAX_PUBLIC_CREDENTIAL_STORAGE_LENGTH);

Expand Down