polkadot-js/common

View on GitHub
packages/util/src/is/wasm.ts

Summary

Maintainability
A
0 mins
Test Coverage
// Copyright 2017-2024 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0

import { u8aEq } from '../u8a/eq.js';
import { isU8a } from './u8a.js';

const WASM_MAGIC = new Uint8Array([0, 97, 115, 109]); // \0asm

/**
 * @name isWasm
 * @summary Tests if the input has a WASM header
 * @description
 * Checks to see if the input Uint8Array contains a valid WASM header
 */
export function isWasm (value?: unknown): value is Uint8Array {
  return isU8a(value) && u8aEq(value.subarray(0, 4), WASM_MAGIC);
}