upload.uploadBundle(tx)
Uploads an array of transactions as a bundle in a single transaction.
This function is provided for users who need to obtain each transaction's ID before uploading. However, most users will use irys.uploadFolder()
, an abstraction that handles the uploading, signing and bundling in a single function call.
Parameters
NOTES:
If a provided transaction is unsigned, the transaction is signed using a temporary (throwaway) key. This means transactions can be associated with a single "random" address.
If a Buffer is provided, it is converted into a transaction and then signed by the throwaway key. The throwaway key, address, and all bundled (provided + throwaway signed + generated) transactions are returned by this method.
Returns
response = {
id, // Transaction ID (used to download the data)
timestamp, // Timestamp (UNIX milliseconds) of when the transaction was created and verified
version, // The version of this JSON file, currently 1.0.0
public, // Public key of the bundler node used
signature, // A signed deep hash of the JSON receipt
deadlineHeight, // The block number by which the transaction must be finalized
block, // Deprecated
validatorSignatures, // Deprecated
verify, // An async function used to verify the receipt at any time
}
Example
const irys = await getIrys();
const maxTxs = 5;
const txs = [];
for (let i = 0; i < maxTxs; i++) {
const newTx = irys.createTransaction(`GM World! ${i + 1}`, {
tags: [{ name: "Content-Type", value: "text/plain" }],
});
await newTx.sign(); // ID is now set
txs.push(newTx);
console.log(`Tx created and signed, https://gateway.irys.xyz/${newTx.id}`);
}
try {
const uploadReceipt = await irys.uploader.uploadBundle(txs);
console.log(`All Txs uploaded.`);
} catch (e) {
console.log("Error uploading bundle ", e);
}
The transaction ID returned as part of the response is used to download the data, simply create a URL with the format
https://gateway.irys.xyz/[transaction-id].