Batch Sign DataItem

Wander Injected API batchSignDataItem() function

The batchSignDataItem() function allows you to create and sign an array of data item objects, compatible with arbundles. These data items can then be submitted to an ANS-104 compatible bundler.

Argument
Type
Description

dataItems

An array of data items to sign

options?

Arweave transaction signature options

Note: This function requires the SIGN_TRANSACTION permission.

Note: The options argument is optional, if it is not provided, the extension will use the default signature options (default salt length) to sign the transaction.

Data item

This function requires valid data item objects, like so:

export interface DataItem[] {
  data: string | Uint8Array;
  target?: string;
  anchor?: string;
  tags?: {
    name: string;
    value: string;
  }[];
}

Example usage

import { DataItem } from "@dha-team/arbundles";

// connect to the extension
await window.arweaveWallet.connect(["SIGN_TRANSACTION"]);

// sign the data item
const signed = await window.arweaveWallet.batchSignDataItem([
  {
    data: "This is an example transaction 1",
    tags: [
      {
        name: "Content-Type",
        value: "text/plain",
      },
    ],
  },
  {
    data: "This is an example transaction 2",
    tags: [
      {
        name: "Content-Type",
        value: "text/plain",
      },
    ],
  },
]);

// load the result into a DataItem instance
const dataItems = signed.map((buffer) => new DataItem(buffer));

// now you can submit them to a bundler
for (const dataItem of dataItems) {
  await fetch(`https://upload.ardrive.io/v1/tx`, {
    method: "POST",
    headers: {
      "Content-Type": "application/octet-stream",
    },
    body: dataItem.getRaw(),
  });
}

Last updated

Was this helpful?