Skip to main content

Helper

This Helper provides utility functions for smooth data type conversions, ensuring compatibility and simplifying the management of data transformations in your software application. Whether handling numeric, string, or other data representations, this Helper enhances overall flexibility and interoperability in your codebase.

Import​

import {
uint8ArrayToHex,
hexToUint8Array,
stringToUint8Array,
uint8ArrayToString,
uint8ArrayToAddress,
uint8ArrayToBool,
boolToUint8Array,
arrayCopyPush,
concatUint8Arrays,
encodeStringUTF8,
decodeUTF8,
base64Encode,
base64Decode,
parseCallMethod,
fromString,
toString,
toUint8Array,
fromUint8Array
} from '@artela/aspect-libs';

1. uint8ArrayToHex​

Convert the Uint8Array to a hexadecimal string

function uint8ArrayToHex(data: Uint8Array, prefix: string = ''): string
  • Parameter

    • data: Uint8Array;
    • prefix: string;
  • Returns

    • string
  • Example

import {
uint8ArrayToHex
} from "@artela/aspect-libs";
{
const uint8Array = new Uint8Array([0x01, 0x02, 0x03, 0x04, 0x05]);
let data =uint8ArrayToHex(u8Array);
}

2. hexToUint8Array​

Convert the hexadecimal string y to Uint8Array

function hexToUint8Array(hex: string): Uint8Array
  • Parameter

    • hex: string;
  • Returns

    • result: string;
  • Example

import {
hexToUint8Array
} from "@artela/aspect-libs";
{
let hex="74657374";
let data =hexToUint8Array(u8Array);
}

3. stringToUint8Array​

Encodes the specified string to UTF-8 bytes, optionally null terminated. ErrorMode defaults to WTF-8.

export function stringToUint8Array(s: string): Uint8Array
  • Parameter

    • hex: string;
  • Returns

    • result: string;
  • Example

import {
stringToUint8Array
} from "@artela/aspect-libs";
{
let hex="test";
let data =stringToUint8Array(u8Array);
}

4. uint8ArrayToString​

Decodes the specified buffer from UTF-8 bytes to a string, optionally null terminated.


function uint8ArrayToString(arr: Uint8Array): string

  • Parameter

    • arr: Uint8Array;
  • Returns

    • result: string;
  • Example

import {
uint8ArrayToString
} from "@artela/aspect-libs";
{
const uint8Array = new Uint8Array([0x74, 0x65, 0x73, 0x74]);
let data =uint8ArrayToString(u8Array);
}

5. uint8ArrayToAddress​

Convert the uint8Array data to ethereum address.


function uint8ArrayToAddress(data: Uint8Array): ethereum.Address

  • Parameter
    • data: Uint8ArrayοΌ›address bytes Uint8Array
  • Returns
    • result: string;
  • Example
import {
uint8ArrayToAddress
} from "@artela/aspect-libs";
{
const uint8Array = new Uint8Array([0x5B, 0x38, 0xDa, 0x6a,0x70,0x1c,0x56,0x85,0x45,0xdC,0xfc,0xB0,0x3F,0xcB,0x87,0x5f,0x56,0xbe,0xdd,0xC4]);
let data =uint8ArrayToAddress(u8Array);
}

6. uint8ArrayToBool​

Convert the uint8Array data to bool.

function uint8ArrayToBool(data: Uint8Array): bool

  • Parameter
    • data: Uint8Array;
  • Returns
    • result: bool;
  • Example
import {
uint8ArrayToBool
} from "@artela/aspect-libs";
{
const u8Array = new Uint8Array([0x01]);
let data =uint8ArrayToBool(u8Array);
}

7. boolToUint8Array​

Convert the bool data to Uint8Array.

function boolToUint8Array(b: bool): Uint8Array 
  • Parameter

    • b: bool;
  • Returns

    • result: Uint8Array;
  • Example

import {
boolToUint8Array
} from "@artela/aspect-libs";
{
let b=true;
let data =boolToUint8Array(b);
}

8. arrayCopyPush​

Copies the elements of the input array and appends a new element to the copied array.

function arrayCopyPush<T>(a: Array<T>, elem: T): Array<T>
  • Parameter

    • a: ArrayT; The input array to be copied.
    • elem: T; The element to be appended to the copied array.
  • Returns

    • result: ArrayT; A new array containing the copied elements from the input array and the appended element.
  • Example

import {
arrayCopyPush
} from "@artela/aspect-libs";
{
const inputArray = [1, 2, 3];
const elementToPush = 4;
// Act
const result = arrayCopyPush(inputArray, elementToPush);
// Assert
expect(result).toEqual([1, 2, 3, 4]);
}

9. concatUint8Arrays​

Concatenates two Uint8Arrays and returns a new Uint8Array containing the concatenated values.

function concatUint8Arrays(a: Uint8Array, b: Uint8Array): Uint8Array
  • Parameter
    • a: Uint8Array; The first Uint8Array to be concatenated.
    • b: Uint8Array; The first Uint8Array to be concatenated.
  • Returns
    • result: Uint8Array; A new Uint8Array containing the concatenated values of a and b.
  • Example
import {
concatUint8Arrays
} from "@artela/aspect-libs";
{
const a = new Uint8Array([1, 2, 3]);
const b = new Uint8Array([4, 5, 6]);
const result = concatUint8Arrays(a, b);
expect(result).toEqual(new Uint8Array([1, 2, 3, 4, 5, 6]));
}

10. encodeStringUTF8​

Encodes the specified string to UTF-8 bytes, optionally null terminated. ErrorMode defaults to WTF-8.

function encodeStringUTF8(str: string): ArrayBuffer 
  • Parameter

    • str: string;
  • Returns

    • result: string;
  • Example

import {
encodeStringUTF8
} from "@artela/aspect-libs";
{
let hex="test";
let data =encodeStringUTF8(u8Array);
}

11. decodeUTF8​

Decodes the specified buffer from UTF-8 bytes to a string, optionally null terminated..


function decodeUTF8(uint8Array: Uint8Array): string
  • Parameter

    • data: Uint8Array;
  • Returns

    • result: string;
  • Example

import {
decodeUTF8
} from "@artela/aspect-libs";
{
// Arrange
const uint8Array = new Uint8Array([72, 101, 108, 108, 111]); // Example UTF-8 encoded bytes for "Hello"
// Act
const result = decodeUTF8(uint8Array);
// Assert
expect(result).toBe('Hello');
}

12. base64Encode​

Encodes the given Uint8Array into a base64 string.

function base64Encode(bytes: Uint8Array): string
  • Parameter

    • bytes: Uint8Array; The input Uint8Array to be encoded.
  • Returns

    • result: string; The base64 encoded string.
  • Example

import {
base64Encode
} from "@artela/aspect-libs";
{
// Arrange
const bytes = new Uint8Array([72, 101, 108, 108, 111]); // "Hello" in ASCII
// Act
const result = base64Encode(bytes);
// Assert
expect(result).toBe('SGVsbG8=');
}

13. base64Decode​

Decodes the given string into a Uint8Array.

function base64Decode(str: string): Uint8Array
  • Parameter
    • str: string; The input sting to be decoded.
  • Returns
    • result: Uint8Array; The base64 decoded Uint8Array.
  • Example
import {
base64Decode
} from "@artela/aspect-libs";
{
const input = 'SGVsbG8gV29ybGQh'; // Base64 encoded "Hello World!"
const expected = new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]);
expect(base64Decode(input)).toEqual(expected);
}

14. parseCallMethod​

Parses the call method from the given Uint8Array data and returns a string representation.

function parseCallMethod(data: Uint8Array): string 
  • Parameter

    • data: Uint8Array; The Uint8Array data to be parsed.
  • Returns

    • result: string; The parsed call method as a string.
  • Example

import {
parseCallMethod
} from "@artela/aspect-libs";
{
// Arrange
const input = new Uint8Array([0x30, 0x78, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66]);
// Act
const result = parseCallMethod(input);
// Assert
expect(result).toBe('0x30786162');
}

15. fromString​

Converts the input string to a value of type T.

function fromString<T>(value: string): T
  • Parameter
    • hex: string; The string to be converted to a value of type T.
  • Returns
    • result: T; The value of type T parsed from the input string.
  • Example
import {
fromString
} from "@artela/aspect-libs";
{
expect(fromString<i8>('10')).toBe(10 as i8);
expect(fromString<u8>('20')).toBe(20 as u8);
expect(fromString<i16>('30')).toBe(30 as i16);
}

16. toString​

Converts the input value to a string representation.

function toString<T>(value: T): string 
  • Parameter

    • value: T; The value to be converted to a string.
  • Returns

    • result: string; The string representation of the input value.
  • Example

import {
toString
} from "@artela/aspect-libs";
{
expect(toString('hello')).toBe('hello');
expect(toString(true)).toBe('1');
expect(toString(false)).toBe('0');
expect(toString(BigInt(123))).toBe('123');
expect(toString(10 as i8)).toBe('10');
expect(toString(20 as u8)).toBe('20');
expect(toString(30 as i16)).toBe('30');
expect(toString(40 as u16)).toBe('40');
expect(toString(50 as i32)).toBe('50');
expect(toString(60 as u32)).toBe('60');
expect(toString(70 as i64)).toBe('70');
expect(toString(80 as u64)).toBe('80');
}

17. toUint8Array​

Converts the input value to a Uint8Array representation.

function toUint8Array<T>(value: T): Uint8Array
  • Parameter *value: T; The value to be converted to a Uint8Array.

  • Returns

    • result: Uint8Array; The Uint8Array representation of the input value.
  • Example

import {
toUint8Array
} from "@artela/aspect-libs";
{
expect(toUint8Array('hello')).toEqual(new Uint8Array([104, 101, 108, 108, 111]));
expect(toUint8Array(true)).toEqual(new Uint8Array([1]));

}

18. fromUint8Array​

Converts the input Uint8Array to a value of type T.

function fromUint8Array<T>(value: Uint8Array): T 
  • Parameter

    • value: Uint8Array; The Uint8Array to be converted to a value of type T.
  • Returns

    • result: T; The value of type T parsed from the input Uint8Array.
  • Example

import {
fromUint8Array
} from "@artela/aspect-libs";
{
expect(fromUint8Array<string>(new Uint8Array([104, 101, 108, 108, 111]))).toEqual('hello');
expect(fromUint8Array<bool>(new Uint8Array([1]))).toEqual(true);
}