249 const auto deser_extkey{[](std::vector<unsigned char> bytes) {
367 std::vector<uint32_t> expected;
370 const std::vector<TestCase>
tests{
372 {
true,
"1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1",
373 {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}},
374 {
false,
"///////////////////////////", {}},
376 {
true,
"1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1'/1",
377 {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
H1,1}},
378 {
false,
"//////////////////////////'/", {}},
380 {
true,
"1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/",
381 {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}},
382 {
false,
"1///////////////////////////", {}},
384 {
true,
"1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1'/",
385 {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
H1}},
386 {
false,
"1/'//////////////////////////", {}},
391 {
true,
"0000'/0000'/0000'", {
H0,
H0,
H0}},
392 {
false,
"0000,/0000,/0000,", {}},
393 {
true,
"01234", {1234}},
394 {
false,
"0x1234", {}},
401 {
true,
"2147483647", {0x7FFFFFFF}},
402 {
false,
"2147483648", {}},
403 {
false,
"4294967295", {}},
404 {
false,
"4294967296", {}},
411 {
true,
"m/0'", {
H0}},
412 {
false,
"m/0''", {}},
414 {
true,
"m/0h", {
H0}},
415 {
false,
"m/0hh", {}},
420 {
true,
"m/0h/1h/2h", {
H0,
H1, 0x80000002U}},
421 {
true,
"m/0'/0'", {
H0,
H0}},
422 {
true,
"m/0h/0h", {
H0,
H0}},
423 {
true,
"m/0'/0h", {
H0,
H0}},
424 {
false,
"m/'0/0'", {}},
425 {
false,
"m/h0/0'", {}},
426 {
true,
"m/0/0", {0, 0}},
427 {
false,
"n/0/0", {}},
428 {
true,
"m/0/0/00", {0, 0, 0}},
429 {
false,
"m/0/0/f00", {}},
430 {
true,
"m/0/0/000000000000000000000000000000000000000000000000000000000000000000000000000000000000", {0, 0, 0}},
431 {
false,
"m/1/1/111111111111111111111111111111111111111111111111111111111111111111111111111111111111", {}},
432 {
true,
"m/0/00/0", {0, 0, 0}},
433 {
false,
"m/0'/00/'0", {}},
435 {
false,
"m/1//", {}},
437 {
true,
"m/2147483647", {0x7FFFFFFF}},
438 {
false,
"m/2147483648", {}},
439 {
false,
"m/4294967295", {}},
440 {
false,
"m/4294967296", {}},
441 {
true,
"m/0/2147483647", {0, 0x7FFFFFFF}},
442 {
false,
"m/0/2147483648", {}},
443 {
false,
"m/0/4294967295", {}},
444 {
false,
"m/0/4294967296", {}},
445 {
false,
"1/2H/3H", {}},
446 {
false,
"1/2h/3h ", {}},
447 {
false,
"1/2h /3h", {}},
448 {
true,
"1/2h/3h", {1, 0x80000002, 0x80000003}},
449 {
true,
"1/2'/3h", {1, 0x80000002, 0x80000003}},