How to obtain the latest transaction records of ICP

I believe it’s a problem of the JS Candid decoder that does not handle subtyping correctly; see How to query blocks using the archive canister interface?.

DFX has no issues with the call:

dfx canister --network ic call qjdve-lqaaa-aaaaa-aaaeq-cai get_blocks '(record { start = 582200:nat64; length = 1:nat64})'
(
  variant {
    17_724 = record {
      2_817_142_406 = vec {
        record {
          1_266_835_934 = record {
            1_213_809_850 = 12_484_270_477_416_014_727 : nat64;
            2_688_582_695 = variant {
              3_021_957_963 = record {
                25_979 = blob "\ef\a0\15D\f5\09\c5m\d8TI\ed\f28\12D\a4\8f\ad\1e\deQ\83\83b)\c0\0a\b0\0dR\df";
                5_094_982 = record { 5_035_232 = 10_000 : nat64 };
                1_136_829_802 = blob "sM\ed\99\f6\c8o\c6w\89\b9\b5\d7\0cU9L\8e\ef\ff\91\b5\10\e6\ba\0e\80\9e8/\88\05";
                3_573_748_184 = record { 5_035_232 = 499_980_000 : nat64 };
              }
            };
            3_258_775_938 = record {
              268_680_022 = 1_631_323_189_974_350_673 : nat64;
            };
          };
          2_781_795_542 = record {
            268_680_022 = 1_631_323_191_460_723_923 : nat64;
          };
          4_121_316_931 = opt blob "F\b7\db8\1bO\1fF\df\ff+\dbfS\a7\e6\f1\97*\f8\f1\a6\c4\9bd\ef\88\ca(\83\daZ";
        };
      };
    }
  },
)