Socket
Socket
Sign inDemoInstall

arbundles

Package Overview
Dependencies
Maintainers
1
Versions
90
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

arbundles - npm Package Compare versions

Comparing version 0.2.1 to 0.2.2

10

build/Bundle.d.ts

@@ -5,7 +5,7 @@ /// <reference types="node" />

import Arweave from "arweave";
import { BundleInterface } from "./BundleInterface";
import { JWKInterface } from "./interface-jwk";
import { BundleInterface } from './BundleInterface';
import { JWKInterface } from './interface-jwk';
export default class Bundle implements BundleInterface {
readonly binary: Buffer;
constructor(binary: Buffer, verify?: boolean);
constructor(binary: Buffer);
get length(): number;

@@ -18,4 +18,3 @@ get items(): DataItem[];

toTransaction(arweave: Arweave, jwk: JWKInterface): Promise<Transaction>;
verify(): boolean;
private static _verify;
verify(): Promise<boolean>;
private getOffset;

@@ -26,2 +25,3 @@ private getByIndex;

private getBundleStart;
private getItems;
}

@@ -10,33 +10,8 @@ "use strict";

binary;
constructor(binary, verify = false) {
if (verify) {
if (!Bundle._verify(binary))
throw new Error("Binary not valid bundle");
}
constructor(binary) {
this.binary = binary;
}
get length() {
return this.getDataItemCount();
}
get items() {
const items = new Array(this.length);
let offset = 0;
const bundleStart = this.getBundleStart();
let counter = 0;
for (let i = HEADER_START; i < HEADER_START + 64 * this.length; i += 64) {
const _offset = utils_1.byteArrayToLong(this.binary.subarray(i, i + 32));
const _id = this.binary.subarray(i + 32, i + 64);
const dataItemStart = bundleStart + offset;
const bytes = this.binary.subarray(dataItemStart, dataItemStart + _offset);
offset += _offset;
const item = new DataItem_1.default(bytes);
item.rawId = _id;
items[counter] = item;
counter++;
}
return items;
}
getRaw() {
return this.binary;
}
get length() { return this.getDataItemCount(); }
get items() { return this.getItems(); }
getRaw() { return this.binary; }
get(index) {

@@ -55,3 +30,3 @@ if (typeof index === "number") {

const ids = [];
for (let i = HEADER_START; i < HEADER_START + 64 * this.length; i += 64) {
for (let i = HEADER_START; i < (HEADER_START + (64 * this.length)); i += 64) {
ids.push(base64url_1.default.encode(this.binary.subarray(i + 32, i + 64)));

@@ -65,3 +40,3 @@ }

}
const start = 64 + 64 * index;
const start = 64 + (64 * index);
return base64url_1.default.encode(this.binary.subarray(start, start + 32));

@@ -71,3 +46,3 @@ }

const tx = await arweave.createTransaction({
data: this.binary,
data: this.binary
}, jwk);

@@ -78,21 +53,10 @@ tx.addTag("Bundle-Format", "binary");

}
verify() {
return Bundle._verify(this.binary);
async verify() {
const items = this.getItems();
const validity = await Promise.all(items.map(item => item.isValid()));
return validity.every(valid => valid === true);
}
static _verify(binary) {
const length = utils_1.byteArrayToLong(binary.subarray(0, 32));
let offset = 32 + 64 * length;
for (let i = HEADER_START; i < HEADER_START + 64 * length; i += 64) {
const _offset = utils_1.byteArrayToLong(binary.subarray(i, i + 32));
const item = new DataItem_1.default(binary.subarray(offset, offset + _offset));
if (!item.isValid()) {
return false;
}
offset += _offset;
}
return true;
}
getOffset(id) {
let offset = 0;
for (let i = HEADER_START; i < HEADER_START + 64 * this.length; i += 64) {
for (let i = HEADER_START; i < (HEADER_START + (64 * this.length)); i += 64) {
const _offset = utils_1.byteArrayToLong(this.binary.subarray(i, i + 32));

@@ -109,6 +73,6 @@ offset += _offset;

let offset = 0;
const headerStart = 32 + 64 * index;
const headerStart = 32 + (64 * index);
const dataItemSize = utils_1.byteArrayToLong(this.binary.subarray(headerStart, headerStart + 32));
let counter = 0;
for (let i = HEADER_START; i < HEADER_START + 64 * this.length; i += 64) {
for (let i = HEADER_START; i < (HEADER_START + (64 * this.length)); i += 64) {
if (counter == index) {

@@ -140,6 +104,24 @@ break;

getBundleStart() {
return 32 + 64 * this.length;
return 32 + (64 * this.length);
}
getItems() {
const items = new Array(this.length);
let offset = 0;
const bundleStart = this.getBundleStart();
let counter = 0;
for (let i = HEADER_START; i < (HEADER_START + (64 * this.length)); i += 64) {
const _offset = utils_1.byteArrayToLong(this.binary.subarray(i, i + 32));
const _id = this.binary.subarray(i + 32, i + 64);
const dataItemStart = bundleStart + offset;
const bytes = this.binary.subarray(dataItemStart, dataItemStart + _offset);
offset += _offset;
const item = new DataItem_1.default(bytes);
item.rawId = _id;
items[counter] = item;
counter++;
}
return items;
}
}
exports.default = Bundle;
//# sourceMappingURL=Bundle.js.map
{
"name": "arbundles",
"version": "0.2.1",
"version": "0.2.2",
"description": "Arweave bundling library",

@@ -5,0 +5,0 @@ "author": "Josh Benaron <joshbenaron@gmail.com>",

@@ -23,7 +23,7 @@ # Arweave Bundles

```ts
import { bundleAndSignData } from "arbundles";
import { bundleAndSignData, createData } from "arbundles";
const dataItems = [
{ data: "some data" },
{ data: "some other data" },
createData("some data"),
createData("some other data")
];

@@ -38,3 +38,3 @@

## Creating and using a DataItem
## Creating and sending data to a Bundler

@@ -44,7 +44,5 @@ ```ts

const data = { data: "some data" };
const signer = new ArweaveSigner(jwk);
const dataItem = await createData(data, signer);
const dataItem = createData("some message", signer);

@@ -57,3 +55,3 @@ // Get owner in base64url encoded string

assert(owner == jwk.n);
const response = dataItem.sendToBundler();
```

@@ -60,0 +58,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc