Skip to content

Commit

Permalink
Use consistent initialization in DataView
Browse files Browse the repository at this point in the history
  • Loading branch information
dapplion committed Jan 17, 2022
1 parent a579ae3 commit 41b27c4
Show file tree
Hide file tree
Showing 6 changed files with 11 additions and 11 deletions.
10 changes: 5 additions & 5 deletions packages/ssz/src/type/abstract.ts
Original file line number Diff line number Diff line change
Expand Up @@ -109,15 +109,15 @@ export abstract class Type<V> {
// Un-performant path but useful for testing and prototyping
value_toTree(value: V): Node {
const uint8Array = new Uint8Array(this.value_serializedSize(value));
const dataView = new DataView(uint8Array.buffer);
const dataView = new DataView(uint8Array.buffer, uint8Array.byteOffset, uint8Array.byteLength);
this.value_serializeToBytes({uint8Array, dataView}, 0, value);
return this.tree_deserializeFromBytes({uint8Array, dataView}, 0, uint8Array.length);
}

// Un-performant path but useful for testing and prototyping
tree_toValue(node: Node): V {
const uint8Array = new Uint8Array(this.tree_serializedSize(node));
const dataView = new DataView(uint8Array.buffer);
const dataView = new DataView(uint8Array.buffer, uint8Array.byteOffset, uint8Array.byteLength);
this.tree_serializeToBytes({uint8Array, dataView}, 0, node);
return this.value_deserializeFromBytes({uint8Array, dataView}, 0, uint8Array.length);
}
Expand All @@ -126,13 +126,13 @@ export abstract class Type<V> {

serialize(value: V): Uint8Array {
const uint8Array = new Uint8Array(this.value_serializedSize(value));
const dataView = new DataView(uint8Array.buffer);
const dataView = new DataView(uint8Array.buffer, uint8Array.byteOffset, uint8Array.byteLength);
this.value_serializeToBytes({uint8Array, dataView}, 0, value);
return uint8Array;
}

deserialize(uint8Array: Uint8Array): V {
const dataView = new DataView(uint8Array.buffer);
const dataView = new DataView(uint8Array.buffer, uint8Array.byteOffset, uint8Array.byteLength);
return this.value_deserializeFromBytes({uint8Array, dataView}, 0, uint8Array.length);
}

Expand Down Expand Up @@ -167,7 +167,7 @@ export abstract class BasicType<V> extends Type<V> {

hashTreeRoot(value: V): Uint8Array {
const uint8Array = new Uint8Array(32);
const dataView = new DataView(uint8Array.buffer);
const dataView = new DataView(uint8Array.buffer, uint8Array.byteOffset, uint8Array.byteLength);
this.value_serializeToBytes({uint8Array, dataView}, 0, value);
return uint8Array;
}
Expand Down
2 changes: 1 addition & 1 deletion packages/ssz/src/type/bitList.ts
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ export class BitListType extends CompositeType<BitArray, BitArrayTreeView, BitAr
fromJson(json: unknown): BitArray {
// TODO: Validate
const uint8Array = fromHexString(json as string);
const dataView = new DataView(uint8Array.buffer);
const dataView = new DataView(uint8Array.buffer, uint8Array.byteOffset, uint8Array.byteLength);
return this.value_deserializeFromBytes({uint8Array, dataView}, 0, uint8Array.length);
}

Expand Down
4 changes: 2 additions & 2 deletions packages/ssz/src/type/bitVector.ts
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ export class BitVectorType extends CompositeType<BitArray, BitArrayTreeView, Bit

commitViewDU(view: BitArray): Node {
const uint8Array = new Uint8Array(this.fixedSize);
const dataView = new DataView(uint8Array.buffer);
const dataView = new DataView(uint8Array.buffer, uint8Array.byteOffset, uint8Array.byteLength);
this.value_serializeToBytes({uint8Array, dataView}, 0, view);
return this.tree_deserializeFromBytes({uint8Array, dataView}, 0, this.fixedSize);
}
Expand Down Expand Up @@ -141,7 +141,7 @@ export class BitVectorType extends CompositeType<BitArray, BitArrayTreeView, Bit
fromJson(json: unknown): BitArray {
// TODO: Validate
const uint8Array = fromHexString(json as string);
const dataView = new DataView(uint8Array.buffer);
const dataView = new DataView(uint8Array.buffer, uint8Array.byteOffset, uint8Array.byteLength);
return this.value_deserializeFromBytes({uint8Array, dataView}, 0, this.fixedSize);
}

Expand Down
2 changes: 1 addition & 1 deletion packages/ssz/src/type/byteList.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ export class ByteListType extends CompositeType<ByteList, ByteList, ByteList> {

commitViewDU(view: Uint8Array): Node {
const uint8Array = new Uint8Array(this.value_serializedSize(view));
const dataView = new DataView(uint8Array.buffer);
const dataView = new DataView(uint8Array.buffer, uint8Array.byteOffset, uint8Array.byteLength);
this.value_serializeToBytes({uint8Array, dataView}, 0, view);
return this.tree_deserializeFromBytes({uint8Array, dataView}, 0, uint8Array.length);
}
Expand Down
2 changes: 1 addition & 1 deletion packages/ssz/src/type/byteVector.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ export class ByteVectorType extends CompositeType<ByteVector, ByteVector, ByteVe

commitViewDU(view: Uint8Array): Node {
const uint8Array = new Uint8Array(this.fixedSize);
const dataView = new DataView(uint8Array.buffer);
const dataView = new DataView(uint8Array.buffer, uint8Array.byteOffset, uint8Array.byteLength);
this.value_serializeToBytes({uint8Array, dataView}, 0, view);
return this.tree_deserializeFromBytes({uint8Array, dataView}, 0, this.fixedSize);
}
Expand Down
2 changes: 1 addition & 1 deletion packages/ssz/src/type/containerNodeStruct.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ export class ContainerNodeStructType<Fields extends Record<string, Type<unknown>
// TODO: Optimize conversion
private valueToTree(value: ValueOfFields<Fields>): Node {
const uint8Array = new Uint8Array(this.value_serializedSize(value));
const dataView = new DataView(uint8Array.buffer);
const dataView = new DataView(uint8Array.buffer, uint8Array.byteOffset, uint8Array.byteLength);
this.value_serializeToBytes({uint8Array, dataView}, 0, value);
return super.tree_deserializeFromBytes({uint8Array, dataView}, 0, uint8Array.length);
}
Expand Down

0 comments on commit 41b27c4

Please sign in to comment.