JSPM

@layerzerolabs/lz-foundation

3.0.75
    • ESM via JSPM
    • ES Module Entrypoint
    • Export Map
    • Keywords
    • License
    • Repository URL
    • TypeScript Types
    • README
    • Created
    • Published
    • Downloads 9627
    • Score
      100M100P100Q152314F
    • License BUSL-1.1

    LayerZero Core Library

    Package Exports

      Readme

      @layerzerolabs/lz-foundation

      The LayerZero Foundation package provides essential functions and interfaces for chain interoperability. It includes utilities for signing, hashing, and managing key pairs.

      Features

      • Address Utilities: Functions for manipulating addresses of different chains.
      • Base Utilities: General-purpose utility functions.
      • Signing: Sign messages and transactions using different algorithms.
      • Hashing: Compute various cryptographic hashes.
      • Key Management: Generate and manage key pairs.

      Installation

      To install the LayerZero Foundation package, you can use npm or yarn:

      npm install @layerzerolabs/lz-foundation

      or

      yarn add @layerzerolabs/lz-foundation

      Usage

      Address Utilities

      Gets the human-readable address.

      import { aptos } from "@layerzerolabs/lz-foundation"
      
      const address = "0x1234567890abcdef1234567890abcdef12345678"
      const addr = aptos.Address.from(address)
      const hr = addr.hr()
      console.log(`human-readable address: ${hr}`)

      Base Utilities

      Encodes a string or Uint8Array to a base58 string.

      import { base58 } from "@layerzerolabs/lz-foundation"
      
      const msg = "hello"
      const encode = base58.encode(msg)
      console.log(`base58 encoded message: ${encode}`)

      Hashing

      Computes the Keccak-256 hash of the given message.

      • message: The input message to hash.
      • Returns: The Keccak-256 hash of the input message.
      import { keccak_256 } from "@layerzerolabs/lz-foundation"
      
      const message = "Hello, world!"
      const hash = keccak_256(message)
      console.log(`Keccak-256 Hash: ${Buffer.from(hash).toString("hex")}`)

      Signing

      Signs a hash using the specified signing algorithm.

      • hash: The hash to sign, must be 32 bytes long.
      • privateKey: The private key in hex format or Uint8Array.
      • algorithm: The signing algorithm to use.
      • Returns: A promise that resolves to the signature.
      import { signHash, SignAlgorithm } from "@layerzerolabs/lz-foundation"
      
      const hash = new Uint8Array(32) // Example hash
      const privateKey = "0xYourPrivateKey"
      const algorithm = SignAlgorithm.SECP256K1
      
      signHash(hash, privateKey, algorithm).then((signature) => {
        console.log(`Signature: ${Buffer.from(signature).toString("hex")}`)
      })

      Key Management

      Interface representing a key pair consisting of a private key and a public key.

      • privateKey: The private key as a Uint8Array.
      • publicKey: The public key as a Uint8Array.
      import { KeyPair } from "@layerzerolabs/lz-foundation"
      
      const keyPair: KeyPair = {
        privateKey: new Uint8Array(32), // Example private key
        publicKey: new Uint8Array(32), // Example public key
      }
      
      console.log(`Private Key: ${Buffer.from(keyPair.privateKey).toString("hex")}`)
      console.log(`Public Key: ${Buffer.from(keyPair.publicKey).toString("hex")}`)