Skip to content

Files

Latest commit

db663d7 · Jan 20, 2025

History

History
This branch is 1271 commits behind unionlabs/union:main.

typescript-sdk

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Jan 20, 2025
Jan 20, 2025
Dec 4, 2024
Jan 20, 2025
Dec 4, 2024
Aug 11, 2024
Sep 11, 2024
Nov 8, 2024
Sep 6, 2024
Jan 9, 2025
Jan 20, 2025
Jul 22, 2024
Sep 11, 2024
Jan 20, 2025
Nov 8, 2024
Jan 20, 2025
May 1, 2024
Nov 8, 2024
Sep 11, 2024
Nov 8, 2024
Jul 22, 2024

Union Labs TypeScript SDK

JSR NPM Version

Union Labs TypeScript SDK providing utilities for cross-chain transfers and more.

npm install @unionlabs/client

Development

Publishing

Publish to npm registry:

npm run build # important!
npm publish --access='public' --no-git-tags

Publish to JSR:

bun ./scripts/publish.ts

Usage

Initiate a client

import { privateKeyToAccount } from "viem/accounts"
import { createUnionClient, http } from "@unionlabs/client"

const client = createUnionClient({
  chainId: "80084",
  transport: http("https://bartio.rpc.berachain.com"),
  account: privateKeyToAccount(`0x${process.env.PRIVATE_KEY}`),
})

Examples

Transfer strd from Stride Testnet on Cosmos (stride-internal-1) chain to Sepolia on EVM (1111551111) chain.

import { DirectSecp256k1Wallet } from "@cosmjs/proto-signing"
import { createUnionClient, hexToBytes, http } from "@unionlabs/client"

const PRIVATE_KEY = process.env["PRIVATE_KEY"]
if (!PRIVATE_KEY) throw new Error("Private key not found")

const cosmosAccount = await DirectSecp256k1Wallet.fromKey(
  Uint8Array.from(hexToBytes(PRIVATE_KEY)),
  "stride"
)

const client = createUnionClient({
  account: cosmosAccount,
  chainId: "stride-internal-1",
  transport: http("stride.testnet-1.stridenet.co")
})

const transfer = await client.transferAsset({
  amount: 1n,
  autoApprove: true,
  denomAddress: "strd",
  destinationChainId: "11155111",
  receiver: "0x8478B37E983F520dBCB5d7D3aAD8276B82631aBd"
})

if (transfer.isErr()) {
  console.error(transfer.error)
  process.exit(1)
}

console.info(transfer.value)