@xyo-network/core 2.82.0-rc.1 → 2.82.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/dist/browser/Data/AbstractData.d.cts +1 -2
  2. package/dist/browser/Data/AbstractData.d.cts.map +1 -1
  3. package/dist/browser/Data/AbstractData.d.mts +1 -2
  4. package/dist/browser/Data/AbstractData.d.mts.map +1 -1
  5. package/dist/browser/Data/AbstractData.d.ts +1 -2
  6. package/dist/browser/Data/AbstractData.d.ts.map +1 -1
  7. package/dist/browser/Data/Data.d.cts +1 -2
  8. package/dist/browser/Data/Data.d.cts.map +1 -1
  9. package/dist/browser/Data/Data.d.mts +1 -2
  10. package/dist/browser/Data/Data.d.mts.map +1 -1
  11. package/dist/browser/Data/Data.d.ts +1 -2
  12. package/dist/browser/Data/Data.d.ts.map +1 -1
  13. package/dist/browser/Data/index.d.cts +1 -0
  14. package/dist/browser/Data/index.d.cts.map +1 -1
  15. package/dist/browser/Data/index.d.mts +1 -0
  16. package/dist/browser/Data/index.d.mts.map +1 -1
  17. package/dist/browser/Data/index.d.ts +1 -0
  18. package/dist/browser/Data/index.d.ts.map +1 -1
  19. package/dist/browser/Data/toUint8Array.d.cts +7 -0
  20. package/dist/browser/Data/toUint8Array.d.cts.map +1 -0
  21. package/dist/browser/Data/toUint8Array.d.mts +7 -0
  22. package/dist/browser/Data/toUint8Array.d.mts.map +1 -0
  23. package/dist/browser/Data/toUint8Array.d.ts +7 -0
  24. package/dist/browser/Data/toUint8Array.d.ts.map +1 -0
  25. package/dist/browser/index.cjs +43 -19
  26. package/dist/browser/index.cjs.map +1 -1
  27. package/dist/browser/index.js +43 -9
  28. package/dist/browser/index.js.map +1 -1
  29. package/dist/node/Data/AbstractData.d.cts +1 -2
  30. package/dist/node/Data/AbstractData.d.cts.map +1 -1
  31. package/dist/node/Data/AbstractData.d.mts +1 -2
  32. package/dist/node/Data/AbstractData.d.mts.map +1 -1
  33. package/dist/node/Data/AbstractData.d.ts +1 -2
  34. package/dist/node/Data/AbstractData.d.ts.map +1 -1
  35. package/dist/node/Data/Data.d.cts +1 -2
  36. package/dist/node/Data/Data.d.cts.map +1 -1
  37. package/dist/node/Data/Data.d.mts +1 -2
  38. package/dist/node/Data/Data.d.mts.map +1 -1
  39. package/dist/node/Data/Data.d.ts +1 -2
  40. package/dist/node/Data/Data.d.ts.map +1 -1
  41. package/dist/node/Data/index.d.cts +1 -0
  42. package/dist/node/Data/index.d.cts.map +1 -1
  43. package/dist/node/Data/index.d.mts +1 -0
  44. package/dist/node/Data/index.d.mts.map +1 -1
  45. package/dist/node/Data/index.d.ts +1 -0
  46. package/dist/node/Data/index.d.ts.map +1 -1
  47. package/dist/node/Data/toUint8Array.d.cts +7 -0
  48. package/dist/node/Data/toUint8Array.d.cts.map +1 -0
  49. package/dist/node/Data/toUint8Array.d.mts +7 -0
  50. package/dist/node/Data/toUint8Array.d.mts.map +1 -0
  51. package/dist/node/Data/toUint8Array.d.ts +7 -0
  52. package/dist/node/Data/toUint8Array.d.ts.map +1 -0
  53. package/dist/node/index.cjs +45 -19
  54. package/dist/node/index.cjs.map +1 -1
  55. package/dist/node/index.js +43 -9
  56. package/dist/node/index.js.map +1 -1
  57. package/package.json +11 -11
  58. package/src/Data/AbstractData.ts +1 -1
  59. package/src/Data/Data.ts +5 -5
  60. package/src/Data/index.ts +1 -0
  61. package/src/Data/toUint8Array.ts +42 -0
@@ -1,9 +1,8 @@
1
- /// <reference types="node" />
2
1
  export declare abstract class AbstractData {
3
2
  get length(): number;
4
3
  abstract get bytes(): ArrayBuffer;
5
4
  abstract get hex(): string;
6
- abstract get keccak256(): Buffer;
5
+ abstract get keccak256(): ArrayBuffer;
7
6
  static is(value: unknown): value is AbstractData;
8
7
  }
9
8
  //# sourceMappingURL=AbstractData.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractData.d.ts","sourceRoot":"","sources":["../../../src/Data/AbstractData.ts"],"names":[],"mappings":";AAAA,8BAAsB,YAAY;IAChC,IAAI,MAAM,WAET;IAED,QAAQ,KAAK,KAAK,IAAI,WAAW,CAAA;IAEjC,QAAQ,KAAK,GAAG,IAAI,MAAM,CAAA;IAE1B,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAA;IAEhC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY;CAGjD"}
1
+ {"version":3,"file":"AbstractData.d.ts","sourceRoot":"","sources":["../../../src/Data/AbstractData.ts"],"names":[],"mappings":"AAAA,8BAAsB,YAAY;IAChC,IAAI,MAAM,WAET;IAED,QAAQ,KAAK,KAAK,IAAI,WAAW,CAAA;IAEjC,QAAQ,KAAK,GAAG,IAAI,MAAM,CAAA;IAE1B,QAAQ,KAAK,SAAS,IAAI,WAAW,CAAA;IAErC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY;CAGjD"}
@@ -1,9 +1,8 @@
1
- /// <reference types="node" />
2
1
  export declare abstract class AbstractData {
3
2
  get length(): number;
4
3
  abstract get bytes(): ArrayBuffer;
5
4
  abstract get hex(): string;
6
- abstract get keccak256(): Buffer;
5
+ abstract get keccak256(): ArrayBuffer;
7
6
  static is(value: unknown): value is AbstractData;
8
7
  }
9
8
  //# sourceMappingURL=AbstractData.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractData.d.ts","sourceRoot":"","sources":["../../../src/Data/AbstractData.ts"],"names":[],"mappings":";AAAA,8BAAsB,YAAY;IAChC,IAAI,MAAM,WAET;IAED,QAAQ,KAAK,KAAK,IAAI,WAAW,CAAA;IAEjC,QAAQ,KAAK,GAAG,IAAI,MAAM,CAAA;IAE1B,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAA;IAEhC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY;CAGjD"}
1
+ {"version":3,"file":"AbstractData.d.ts","sourceRoot":"","sources":["../../../src/Data/AbstractData.ts"],"names":[],"mappings":"AAAA,8BAAsB,YAAY;IAChC,IAAI,MAAM,WAET;IAED,QAAQ,KAAK,KAAK,IAAI,WAAW,CAAA;IAEjC,QAAQ,KAAK,GAAG,IAAI,MAAM,CAAA;IAE1B,QAAQ,KAAK,SAAS,IAAI,WAAW,CAAA;IAErC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY;CAGjD"}
@@ -1,9 +1,8 @@
1
- /// <reference types="node" />
2
1
  export declare abstract class AbstractData {
3
2
  get length(): number;
4
3
  abstract get bytes(): ArrayBuffer;
5
4
  abstract get hex(): string;
6
- abstract get keccak256(): Buffer;
5
+ abstract get keccak256(): ArrayBuffer;
7
6
  static is(value: unknown): value is AbstractData;
8
7
  }
9
8
  //# sourceMappingURL=AbstractData.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractData.d.ts","sourceRoot":"","sources":["../../../src/Data/AbstractData.ts"],"names":[],"mappings":";AAAA,8BAAsB,YAAY;IAChC,IAAI,MAAM,WAET;IAED,QAAQ,KAAK,KAAK,IAAI,WAAW,CAAA;IAEjC,QAAQ,KAAK,GAAG,IAAI,MAAM,CAAA;IAE1B,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAA;IAEhC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY;CAGjD"}
1
+ {"version":3,"file":"AbstractData.d.ts","sourceRoot":"","sources":["../../../src/Data/AbstractData.ts"],"names":[],"mappings":"AAAA,8BAAsB,YAAY;IAChC,IAAI,MAAM,WAET;IAED,QAAQ,KAAK,KAAK,IAAI,WAAW,CAAA;IAEjC,QAAQ,KAAK,GAAG,IAAI,MAAM,CAAA;IAE1B,QAAQ,KAAK,SAAS,IAAI,WAAW,CAAA;IAErC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY;CAGjD"}
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { AbstractData } from './AbstractData';
3
2
  import { DataLike } from './DataLike';
4
3
  export declare class Data extends AbstractData {
@@ -9,7 +8,7 @@ export declare class Data extends AbstractData {
9
8
  get base58(): string;
10
9
  get bytes(): ArrayBuffer;
11
10
  get hex(): string;
12
- get keccak256(): Buffer;
11
+ get keccak256(): Uint8Array;
13
12
  static from(data: DataLike | undefined): Data | undefined;
14
13
  static lengthOf(data: DataLike): number;
15
14
  private checkLength;
@@ -1 +1 @@
1
- {"version":3,"file":"Data.d.ts","sourceRoot":"","sources":["../../../src/Data/Data.ts"],"names":[],"mappings":";AAOA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,qBAAa,IAAK,SAAQ,YAAY;IACpC,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B,OAAO,CAAC,OAAO,CAAQ;gBAEX,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,QAAQ;gBAChC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAOxD,IAAI,MAAM,WAGT;IAED,IAAI,KAAK,gBAER;IAED,IAAI,GAAG,WAGN;IAED,IAAI,SAAS,WAGZ;IAED,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS;IAItC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;IAUvC,OAAO,CAAC,WAAW;CAGpB"}
1
+ {"version":3,"file":"Data.d.ts","sourceRoot":"","sources":["../../../src/Data/Data.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAGrC,qBAAa,IAAK,SAAQ,YAAY;IACpC,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B,OAAO,CAAC,OAAO,CAAQ;gBAEX,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,QAAQ;gBAChC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAOxD,IAAI,MAAM,WAGT;IAED,IAAI,KAAK,gBAER;IAED,IAAI,GAAG,WAGN;IAED,IAAI,SAAS,eAGZ;IAED,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS;IAItC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;IAUvC,OAAO,CAAC,WAAW;CAGpB"}
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { AbstractData } from './AbstractData';
3
2
  import { DataLike } from './DataLike';
4
3
  export declare class Data extends AbstractData {
@@ -9,7 +8,7 @@ export declare class Data extends AbstractData {
9
8
  get base58(): string;
10
9
  get bytes(): ArrayBuffer;
11
10
  get hex(): string;
12
- get keccak256(): Buffer;
11
+ get keccak256(): Uint8Array;
13
12
  static from(data: DataLike | undefined): Data | undefined;
14
13
  static lengthOf(data: DataLike): number;
15
14
  private checkLength;
@@ -1 +1 @@
1
- {"version":3,"file":"Data.d.ts","sourceRoot":"","sources":["../../../src/Data/Data.ts"],"names":[],"mappings":";AAOA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,qBAAa,IAAK,SAAQ,YAAY;IACpC,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B,OAAO,CAAC,OAAO,CAAQ;gBAEX,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,QAAQ;gBAChC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAOxD,IAAI,MAAM,WAGT;IAED,IAAI,KAAK,gBAER;IAED,IAAI,GAAG,WAGN;IAED,IAAI,SAAS,WAGZ;IAED,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS;IAItC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;IAUvC,OAAO,CAAC,WAAW;CAGpB"}
1
+ {"version":3,"file":"Data.d.ts","sourceRoot":"","sources":["../../../src/Data/Data.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAGrC,qBAAa,IAAK,SAAQ,YAAY;IACpC,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B,OAAO,CAAC,OAAO,CAAQ;gBAEX,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,QAAQ;gBAChC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAOxD,IAAI,MAAM,WAGT;IAED,IAAI,KAAK,gBAER;IAED,IAAI,GAAG,WAGN;IAED,IAAI,SAAS,eAGZ;IAED,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS;IAItC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;IAUvC,OAAO,CAAC,WAAW;CAGpB"}
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { AbstractData } from './AbstractData';
3
2
  import { DataLike } from './DataLike';
4
3
  export declare class Data extends AbstractData {
@@ -9,7 +8,7 @@ export declare class Data extends AbstractData {
9
8
  get base58(): string;
10
9
  get bytes(): ArrayBuffer;
11
10
  get hex(): string;
12
- get keccak256(): Buffer;
11
+ get keccak256(): Uint8Array;
13
12
  static from(data: DataLike | undefined): Data | undefined;
14
13
  static lengthOf(data: DataLike): number;
15
14
  private checkLength;
@@ -1 +1 @@
1
- {"version":3,"file":"Data.d.ts","sourceRoot":"","sources":["../../../src/Data/Data.ts"],"names":[],"mappings":";AAOA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,qBAAa,IAAK,SAAQ,YAAY;IACpC,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B,OAAO,CAAC,OAAO,CAAQ;gBAEX,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,QAAQ;gBAChC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAOxD,IAAI,MAAM,WAGT;IAED,IAAI,KAAK,gBAER;IAED,IAAI,GAAG,WAGN;IAED,IAAI,SAAS,WAGZ;IAED,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS;IAItC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;IAUvC,OAAO,CAAC,WAAW;CAGpB"}
1
+ {"version":3,"file":"Data.d.ts","sourceRoot":"","sources":["../../../src/Data/Data.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAGrC,qBAAa,IAAK,SAAQ,YAAY;IACpC,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B,OAAO,CAAC,OAAO,CAAQ;gBAEX,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,QAAQ;gBAChC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAOxD,IAAI,MAAM,WAGT;IAED,IAAI,KAAK,gBAER;IAED,IAAI,GAAG,WAGN;IAED,IAAI,SAAS,eAGZ;IAED,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS;IAItC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;IAUvC,OAAO,CAAC,WAAW;CAGpB"}
@@ -1,4 +1,5 @@
1
1
  export * from './AbstractData';
2
2
  export * from './Data';
3
3
  export * from './DataLike';
4
+ export * from './toUint8Array';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Data/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Data/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA"}
@@ -1,4 +1,5 @@
1
1
  export * from './AbstractData';
2
2
  export * from './Data';
3
3
  export * from './DataLike';
4
+ export * from './toUint8Array';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Data/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Data/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA"}
@@ -1,4 +1,5 @@
1
1
  export * from './AbstractData';
2
2
  export * from './Data';
3
3
  export * from './DataLike';
4
+ export * from './toUint8Array';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Data/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Data/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { DataLike } from './DataLike';
2
+ /** @deprecated use ArrayBuffer instead */
3
+ export declare const toUint8ArrayOptional: (value?: DataLike, padLength?: number, base?: number) => Uint8Array | undefined;
4
+ export declare function toUint8Array(value: undefined, padLength?: number, base?: number): undefined;
5
+ export declare function toUint8Array(value: DataLike, padLength?: number, base?: number): Uint8Array;
6
+ export declare function toUint8Array(value: DataLike | undefined, padLength?: number, base?: number): Uint8Array | undefined;
7
+ //# sourceMappingURL=toUint8Array.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toUint8Array.d.ts","sourceRoot":"","sources":["../../../src/Data/toUint8Array.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAarC,0CAA0C;AAC1C,eAAO,MAAM,oBAAoB,WAAY,QAAQ,cAAc,MAAM,SAAS,MAAM,KAAG,UAAU,GAAG,SAEvG,CAAA;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;AAC5F,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAAA;AAC5F,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { DataLike } from './DataLike';
2
+ /** @deprecated use ArrayBuffer instead */
3
+ export declare const toUint8ArrayOptional: (value?: DataLike, padLength?: number, base?: number) => Uint8Array | undefined;
4
+ export declare function toUint8Array(value: undefined, padLength?: number, base?: number): undefined;
5
+ export declare function toUint8Array(value: DataLike, padLength?: number, base?: number): Uint8Array;
6
+ export declare function toUint8Array(value: DataLike | undefined, padLength?: number, base?: number): Uint8Array | undefined;
7
+ //# sourceMappingURL=toUint8Array.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toUint8Array.d.ts","sourceRoot":"","sources":["../../../src/Data/toUint8Array.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAarC,0CAA0C;AAC1C,eAAO,MAAM,oBAAoB,WAAY,QAAQ,cAAc,MAAM,SAAS,MAAM,KAAG,UAAU,GAAG,SAEvG,CAAA;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;AAC5F,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAAA;AAC5F,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { DataLike } from './DataLike';
2
+ /** @deprecated use ArrayBuffer instead */
3
+ export declare const toUint8ArrayOptional: (value?: DataLike, padLength?: number, base?: number) => Uint8Array | undefined;
4
+ export declare function toUint8Array(value: undefined, padLength?: number, base?: number): undefined;
5
+ export declare function toUint8Array(value: DataLike, padLength?: number, base?: number): Uint8Array;
6
+ export declare function toUint8Array(value: DataLike | undefined, padLength?: number, base?: number): Uint8Array | undefined;
7
+ //# sourceMappingURL=toUint8Array.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toUint8Array.d.ts","sourceRoot":"","sources":["../../../src/Data/toUint8Array.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAarC,0CAA0C;AAC1C,eAAO,MAAM,oBAAoB,WAAY,QAAQ,cAAc,MAAM,SAAS,MAAM,KAAG,UAAU,GAAG,SAEvG,CAAA;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;AAC5F,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAAA;AAC5F,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAA"}
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
- var __create = Object.create;
3
2
  var __defProp = Object.defineProperty;
4
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
6
  var __export = (target, all) => {
9
7
  for (var name in all)
@@ -18,14 +16,6 @@ var __copyProps = (to, from, except, desc) => {
18
16
  return to;
19
17
  };
20
18
  var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
21
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
- // If the importer is in node compatibility mode or this is not an ESM
23
- // file that has been converted to a CommonJS file using a Babel-
24
- // compatible transform (i.e. "__esModule" has not been set), then set
25
- // "default" to the CommonJS "module.exports" for node compatibility.
26
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
- mod
28
- ));
29
19
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
20
 
31
21
  // src/index.ts
@@ -37,6 +27,8 @@ __export(src_exports, {
37
27
  ValidatorBase: () => ValidatorBase,
38
28
  dumpErrors: () => dumpErrors,
39
29
  isBrowser: () => isBrowser,
30
+ toUint8Array: () => toUint8Array,
31
+ toUint8ArrayOptional: () => toUint8ArrayOptional,
40
32
  uuid: () => uuid
41
33
  });
42
34
  module.exports = __toCommonJS(src_exports);
@@ -52,33 +44,65 @@ var AbstractData = class _AbstractData {
52
44
  };
53
45
 
54
46
  // src/Data/Data.ts
47
+ var import_base2 = require("@scure/base");
48
+ var import_arraybuffer = require("@xylabs/arraybuffer");
49
+ var import_assert2 = require("@xylabs/assert");
50
+ var import_ethers = require("ethers");
51
+
52
+ // src/Data/toUint8Array.ts
55
53
  var import_base = require("@scure/base");
56
54
  var import_assert = require("@xylabs/assert");
57
- var import_hex = require("@xylabs/hex");
58
- var import_hash = require("@xyo-network/hash");
59
- var import_keccak256 = __toESM(require("keccak256"), 1);
55
+ var import_typeof = require("@xyo-network/typeof");
56
+ var stringToUint8Array = (value, base = 16) => {
57
+ switch (base) {
58
+ case 16:
59
+ return import_base.base16.decode((value.startsWith("0x") ? value.slice(2) : value).toUpperCase());
60
+ case 58:
61
+ return import_base.base58.decode(value);
62
+ default:
63
+ throw Error(`Unsupported base [${base}]`);
64
+ }
65
+ };
66
+ var toUint8ArrayOptional = (value, padLength, base) => {
67
+ return value ? toUint8Array(value, padLength, base) : void 0;
68
+ };
69
+ function toUint8Array(value, padLength, base) {
70
+ if (value === void 0)
71
+ return void 0;
72
+ let result = (0, import_typeof.ifTypeOf)("string", value, (value2) => stringToUint8Array(value2, base)) ?? value;
73
+ if (result === void 0) {
74
+ throw Error(`toUint8Array - Unknown type: ${typeof value}`);
75
+ }
76
+ if (padLength && result.length < padLength) {
77
+ result = new Uint8Array([...new Uint8Array(padLength - result.length), ...result]);
78
+ (0, import_assert.assertEx)(result?.length <= padLength, "Resulting length is greater than padLength");
79
+ }
80
+ return result;
81
+ }
82
+
83
+ // src/Data/Data.ts
60
84
  var Data = class _Data extends AbstractData {
61
85
  _bytes;
62
86
  _length;
63
87
  constructor(length, bytes, base) {
64
88
  super();
65
- this._bytes = (0, import_hash.toUint8Array)(bytes, length, base);
89
+ this._bytes = toUint8ArrayOptional(bytes, length, base);
66
90
  this._length = length;
67
91
  }
68
92
  get base58() {
69
93
  this.checkLength();
70
- return import_base.base58.encode(new Uint8Array(this.bytes));
94
+ return import_base2.base58.encode(new Uint8Array(this.bytes));
71
95
  }
72
96
  get bytes() {
73
- return (0, import_assert.assertEx)(this._bytes, "Data uninitialized");
97
+ return (0, import_assert2.assertEx)(this._bytes, "Data uninitialized");
74
98
  }
75
99
  get hex() {
76
100
  this.checkLength();
77
- return import_base.base16.encode(new Uint8Array(this.bytes)).toLowerCase();
101
+ return import_base2.base16.encode(new Uint8Array(this.bytes)).toLowerCase();
78
102
  }
79
103
  get keccak256() {
80
104
  this.checkLength();
81
- return Buffer.from((0, import_keccak256.default)(`0x${(0, import_hex.toHex)(this.bytes)}`));
105
+ return (0, import_arraybuffer.toArrayBuffer)((0, import_ethers.keccak256)(new Uint8Array(this.bytes)));
82
106
  }
83
107
  static from(data) {
84
108
  return data ? new _Data(_Data.lengthOf(data), data) : void 0;
@@ -93,7 +117,7 @@ var Data = class _Data extends AbstractData {
93
117
  }
94
118
  }
95
119
  checkLength() {
96
- (0, import_assert.assertEx)(this.bytes.byteLength === this._length, `Length Mismatch: ${this.bytes.byteLength} !== ${this._length}`);
120
+ (0, import_assert2.assertEx)(this.bytes.byteLength === this._length, `Length Mismatch: ${this.bytes.byteLength} !== ${this._length}`);
97
121
  }
98
122
  };
99
123
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/Data/AbstractData.ts","../../src/Data/Data.ts","../../src/lib/Base.ts","../../src/lib/dumpErrors.ts","../../src/lib/isBrowser.ts","../../src/lib/uuid.ts","../../src/lib/Validator.ts"],"sourcesContent":["export * from './Data'\nexport * from './lib'\nexport * from '@xyo-network/address'\nexport * from '@xyo-network/hash'\nexport * from '@xyo-network/object'\nexport * from '@xyo-network/wasm'\n","export abstract class AbstractData {\n get length() {\n return this.bytes.byteLength\n }\n\n abstract get bytes(): ArrayBuffer\n\n abstract get hex(): string\n\n abstract get keccak256(): Buffer\n\n static is(value: unknown): value is AbstractData {\n return value instanceof AbstractData\n }\n}\n","/* eslint-disable import/no-deprecated */\nimport { base16, base58 } from '@scure/base'\nimport { assertEx } from '@xylabs/assert'\nimport { toHex } from '@xylabs/hex'\nimport { toUint8Array } from '@xyo-network/hash'\nimport keccak256 from 'keccak256'\n\nimport { AbstractData } from './AbstractData'\nimport { DataLike } from './DataLike'\n\nexport class Data extends AbstractData {\n private _bytes?: ArrayBuffer\n private _length: number\n\n constructor(length: number, bytes?: DataLike)\n constructor(length: number, bytes: string, base?: number)\n constructor(length: number, bytes?: DataLike, base?: number) {\n super()\n this._bytes = toUint8Array(bytes, length, base)\n this._length = length\n }\n\n get base58() {\n this.checkLength()\n return base58.encode(new Uint8Array(this.bytes))\n }\n\n get bytes() {\n return assertEx(this._bytes, 'Data uninitialized')\n }\n\n get hex() {\n this.checkLength()\n return base16.encode(new Uint8Array(this.bytes)).toLowerCase()\n }\n\n get keccak256() {\n this.checkLength()\n return Buffer.from(keccak256(`0x${toHex(this.bytes)}`))\n }\n\n static from(data: DataLike | undefined) {\n return data ? new Data(Data.lengthOf(data), data) : undefined\n }\n\n static lengthOf(data: DataLike): number {\n if (typeof data === 'string') {\n return data.length / 2\n } else if (data instanceof AbstractData) {\n return data.length\n } else {\n return typeof data.byteLength === 'function' ? data.byteLength : data.byteLength\n }\n }\n\n private checkLength() {\n assertEx(this.bytes.byteLength === this._length, `Length Mismatch: ${this.bytes.byteLength} !== ${this._length}`)\n }\n}\n","import { Logger } from '@xylabs/logger'\nimport { AnyObject } from '@xyo-network/object'\n\nexport type BaseParamsFields = {\n logger?: Logger\n}\n\nexport type BaseParams<TAdditionalParams extends AnyObject | void = void> = TAdditionalParams extends AnyObject\n ? BaseParamsFields & TAdditionalParams\n : BaseParamsFields\n\nexport abstract class Base<TParams extends BaseParams = BaseParams> {\n static defaultLogger?: Logger\n\n constructor(readonly params: TParams) {\n params.logger?.debug(`Base constructed [${Object(this).name}]`)\n }\n\n protected get logger() {\n return this.params?.logger ?? Base.defaultLogger ?? console\n }\n}\n","const dumpErrors = (errors: Error[]) => {\n errors.forEach((error) => {\n console.log(error, null, 2)\n })\n}\n\nexport { dumpErrors }\n","export const isBrowser = () => {\n return typeof process === 'undefined'\n}\n","import { v4 } from 'uuid'\n\nexport const uuid = () => {\n try {\n return v4()\n } catch {\n //generally if no crypto library support\n const bytes: number[] = []\n for (let i = 0; i < 16; i++) {\n bytes.push(Math.floor(Math.random() * 256))\n }\n console.log(`bytes: ${JSON.stringify(bytes)}`)\n return `${bytes[0].toString(16)}${bytes[1].toString(16)}${bytes[2].toString(16)}${bytes[3].toString(16)}-${bytes[4].toString(\n 16,\n )}${bytes[5].toString(16)}-${bytes[6].toString(16)}${bytes[7].toString(16)}-${bytes[8].toString(16)}${bytes[9].toString(16)}-${bytes[10].toString(\n 16,\n )}${bytes[11].toString(16)}${bytes[12].toString(16)}${bytes[13].toString(16)}${bytes[14].toString(16)}${bytes[15].toString(16)}`\n }\n}\n","import { Promisable } from '@xylabs/promise'\nimport { AnyObject, ObjectWrapper } from '@xyo-network/object'\n\nexport interface Validator<T extends AnyObject = AnyObject> {\n validate(payload: T): Promisable<Error[]>\n}\n\nexport abstract class ValidatorBase<T extends AnyObject = AnyObject> extends ObjectWrapper<T> implements Validator<T> {\n abstract validate(payload: T): Promisable<Error[]>\n}\n"],"mappings":"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","names":["keccak256"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/Data/AbstractData.ts","../../src/Data/Data.ts","../../src/Data/toUint8Array.ts","../../src/lib/Base.ts","../../src/lib/dumpErrors.ts","../../src/lib/isBrowser.ts","../../src/lib/uuid.ts","../../src/lib/Validator.ts"],"sourcesContent":["export * from './Data'\nexport * from './lib'\nexport * from '@xyo-network/address'\nexport * from '@xyo-network/hash'\nexport * from '@xyo-network/object'\nexport * from '@xyo-network/wasm'\n","export abstract class AbstractData {\n get length() {\n return this.bytes.byteLength\n }\n\n abstract get bytes(): ArrayBuffer\n\n abstract get hex(): string\n\n abstract get keccak256(): ArrayBuffer\n\n static is(value: unknown): value is AbstractData {\n return value instanceof AbstractData\n }\n}\n","/* eslint-disable import/no-deprecated */\nimport { base16, base58 } from '@scure/base'\nimport { toArrayBuffer } from '@xylabs/arraybuffer'\nimport { assertEx } from '@xylabs/assert'\nimport { keccak256 } from 'ethers'\n\nimport { AbstractData } from './AbstractData'\nimport { DataLike } from './DataLike'\nimport { toUint8ArrayOptional } from './toUint8Array'\n\nexport class Data extends AbstractData {\n private _bytes?: ArrayBuffer\n private _length: number\n\n constructor(length: number, bytes?: DataLike)\n constructor(length: number, bytes: string, base?: number)\n constructor(length: number, bytes?: DataLike, base?: number) {\n super()\n this._bytes = toUint8ArrayOptional(bytes, length, base)\n this._length = length\n }\n\n get base58() {\n this.checkLength()\n return base58.encode(new Uint8Array(this.bytes))\n }\n\n get bytes() {\n return assertEx(this._bytes, 'Data uninitialized')\n }\n\n get hex() {\n this.checkLength()\n return base16.encode(new Uint8Array(this.bytes)).toLowerCase()\n }\n\n get keccak256() {\n this.checkLength()\n return toArrayBuffer(keccak256(new Uint8Array(this.bytes)))\n }\n\n static from(data: DataLike | undefined) {\n return data ? new Data(Data.lengthOf(data), data) : undefined\n }\n\n static lengthOf(data: DataLike): number {\n if (typeof data === 'string') {\n return data.length / 2\n } else if (data instanceof AbstractData) {\n return data.length\n } else {\n return typeof data.byteLength === 'function' ? data.byteLength : data.byteLength\n }\n }\n\n private checkLength() {\n assertEx(this.bytes.byteLength === this._length, `Length Mismatch: ${this.bytes.byteLength} !== ${this._length}`)\n }\n}\n","import { base16, base58 } from '@scure/base'\nimport { assertEx } from '@xylabs/assert'\nimport { ifTypeOf } from '@xyo-network/typeof'\n\nimport { DataLike } from './DataLike'\n\nconst stringToUint8Array = (value: string, base = 16) => {\n switch (base) {\n case 16:\n return base16.decode((value.startsWith('0x') ? value.slice(2) : value).toUpperCase())\n case 58:\n return base58.decode(value)\n default:\n throw Error(`Unsupported base [${base}]`)\n }\n}\n\n/** @deprecated use ArrayBuffer instead */\nexport const toUint8ArrayOptional = (value?: DataLike, padLength?: number, base?: number): Uint8Array | undefined => {\n return value ? toUint8Array(value, padLength, base) : undefined\n}\n\nexport function toUint8Array(value: undefined, padLength?: number, base?: number): undefined\nexport function toUint8Array(value: DataLike, padLength?: number, base?: number): Uint8Array\nexport function toUint8Array(value: DataLike | undefined, padLength?: number, base?: number): Uint8Array | undefined\nexport function toUint8Array(value?: DataLike, padLength?: number, base?: number): Uint8Array | undefined {\n if (value === undefined) return undefined\n\n let result: Uint8Array | undefined =\n ifTypeOf<string, Uint8Array>('string', value as string, (value) => stringToUint8Array(value, base)) ?? (value as Uint8Array)\n\n if (result === undefined) {\n throw Error(`toUint8Array - Unknown type: ${typeof value}`)\n }\n\n if (padLength && result.length < padLength) {\n result = new Uint8Array([...new Uint8Array(padLength - result.length), ...result])\n assertEx(result?.length <= padLength, 'Resulting length is greater than padLength')\n }\n\n return result\n}\n","import { Logger } from '@xylabs/logger'\nimport { AnyObject } from '@xyo-network/object'\n\nexport type BaseParamsFields = {\n logger?: Logger\n}\n\nexport type BaseParams<TAdditionalParams extends AnyObject | void = void> = TAdditionalParams extends AnyObject\n ? BaseParamsFields & TAdditionalParams\n : BaseParamsFields\n\nexport abstract class Base<TParams extends BaseParams = BaseParams> {\n static defaultLogger?: Logger\n\n constructor(readonly params: TParams) {\n params.logger?.debug(`Base constructed [${Object(this).name}]`)\n }\n\n protected get logger() {\n return this.params?.logger ?? Base.defaultLogger ?? console\n }\n}\n","const dumpErrors = (errors: Error[]) => {\n errors.forEach((error) => {\n console.log(error, null, 2)\n })\n}\n\nexport { dumpErrors }\n","export const isBrowser = () => {\n return typeof process === 'undefined'\n}\n","import { v4 } from 'uuid'\n\nexport const uuid = () => {\n try {\n return v4()\n } catch {\n //generally if no crypto library support\n const bytes: number[] = []\n for (let i = 0; i < 16; i++) {\n bytes.push(Math.floor(Math.random() * 256))\n }\n console.log(`bytes: ${JSON.stringify(bytes)}`)\n return `${bytes[0].toString(16)}${bytes[1].toString(16)}${bytes[2].toString(16)}${bytes[3].toString(16)}-${bytes[4].toString(\n 16,\n )}${bytes[5].toString(16)}-${bytes[6].toString(16)}${bytes[7].toString(16)}-${bytes[8].toString(16)}${bytes[9].toString(16)}-${bytes[10].toString(\n 16,\n )}${bytes[11].toString(16)}${bytes[12].toString(16)}${bytes[13].toString(16)}${bytes[14].toString(16)}${bytes[15].toString(16)}`\n }\n}\n","import { Promisable } from '@xylabs/promise'\nimport { AnyObject, ObjectWrapper } from '@xyo-network/object'\n\nexport interface Validator<T extends AnyObject = AnyObject> {\n validate(payload: T): Promisable<Error[]>\n}\n\nexport abstract class ValidatorBase<T extends AnyObject = AnyObject> extends ObjectWrapper<T> implements Validator<T> {\n abstract validate(payload: T): Promisable<Error[]>\n}\n"],"mappings":"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","names":["import_base","import_assert","value"]}
@@ -9,33 +9,65 @@ var AbstractData = class _AbstractData {
9
9
  };
10
10
 
11
11
  // src/Data/Data.ts
12
+ import { base16 as base162, base58 as base582 } from "@scure/base";
13
+ import { toArrayBuffer } from "@xylabs/arraybuffer";
14
+ import { assertEx as assertEx2 } from "@xylabs/assert";
15
+ import { keccak256 } from "ethers";
16
+
17
+ // src/Data/toUint8Array.ts
12
18
  import { base16, base58 } from "@scure/base";
13
19
  import { assertEx } from "@xylabs/assert";
14
- import { toHex } from "@xylabs/hex";
15
- import { toUint8Array } from "@xyo-network/hash";
16
- import keccak256 from "keccak256";
20
+ import { ifTypeOf } from "@xyo-network/typeof";
21
+ var stringToUint8Array = (value, base = 16) => {
22
+ switch (base) {
23
+ case 16:
24
+ return base16.decode((value.startsWith("0x") ? value.slice(2) : value).toUpperCase());
25
+ case 58:
26
+ return base58.decode(value);
27
+ default:
28
+ throw Error(`Unsupported base [${base}]`);
29
+ }
30
+ };
31
+ var toUint8ArrayOptional = (value, padLength, base) => {
32
+ return value ? toUint8Array(value, padLength, base) : void 0;
33
+ };
34
+ function toUint8Array(value, padLength, base) {
35
+ if (value === void 0)
36
+ return void 0;
37
+ let result = ifTypeOf("string", value, (value2) => stringToUint8Array(value2, base)) ?? value;
38
+ if (result === void 0) {
39
+ throw Error(`toUint8Array - Unknown type: ${typeof value}`);
40
+ }
41
+ if (padLength && result.length < padLength) {
42
+ result = new Uint8Array([...new Uint8Array(padLength - result.length), ...result]);
43
+ assertEx(result?.length <= padLength, "Resulting length is greater than padLength");
44
+ }
45
+ return result;
46
+ }
47
+
48
+ // src/Data/Data.ts
17
49
  var Data = class _Data extends AbstractData {
18
50
  _bytes;
19
51
  _length;
20
52
  constructor(length, bytes, base) {
21
53
  super();
22
- this._bytes = toUint8Array(bytes, length, base);
54
+ this._bytes = toUint8ArrayOptional(bytes, length, base);
23
55
  this._length = length;
24
56
  }
25
57
  get base58() {
26
58
  this.checkLength();
27
- return base58.encode(new Uint8Array(this.bytes));
59
+ return base582.encode(new Uint8Array(this.bytes));
28
60
  }
29
61
  get bytes() {
30
- return assertEx(this._bytes, "Data uninitialized");
62
+ return assertEx2(this._bytes, "Data uninitialized");
31
63
  }
32
64
  get hex() {
33
65
  this.checkLength();
34
- return base16.encode(new Uint8Array(this.bytes)).toLowerCase();
66
+ return base162.encode(new Uint8Array(this.bytes)).toLowerCase();
35
67
  }
36
68
  get keccak256() {
37
69
  this.checkLength();
38
- return Buffer.from(keccak256(`0x${toHex(this.bytes)}`));
70
+ return toArrayBuffer(keccak256(new Uint8Array(this.bytes)));
39
71
  }
40
72
  static from(data) {
41
73
  return data ? new _Data(_Data.lengthOf(data), data) : void 0;
@@ -50,7 +82,7 @@ var Data = class _Data extends AbstractData {
50
82
  }
51
83
  }
52
84
  checkLength() {
53
- assertEx(this.bytes.byteLength === this._length, `Length Mismatch: ${this.bytes.byteLength} !== ${this._length}`);
85
+ assertEx2(this.bytes.byteLength === this._length, `Length Mismatch: ${this.bytes.byteLength} !== ${this._length}`);
54
86
  }
55
87
  };
56
88
 
@@ -114,6 +146,8 @@ export {
114
146
  ValidatorBase,
115
147
  dumpErrors,
116
148
  isBrowser,
149
+ toUint8Array,
150
+ toUint8ArrayOptional,
117
151
  uuid
118
152
  };
119
153
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Data/AbstractData.ts","../../src/Data/Data.ts","../../src/lib/Base.ts","../../src/lib/dumpErrors.ts","../../src/lib/isBrowser.ts","../../src/lib/uuid.ts","../../src/lib/Validator.ts","../../src/index.ts"],"sourcesContent":["export abstract class AbstractData {\n get length() {\n return this.bytes.byteLength\n }\n\n abstract get bytes(): ArrayBuffer\n\n abstract get hex(): string\n\n abstract get keccak256(): Buffer\n\n static is(value: unknown): value is AbstractData {\n return value instanceof AbstractData\n }\n}\n","/* eslint-disable import/no-deprecated */\nimport { base16, base58 } from '@scure/base'\nimport { assertEx } from '@xylabs/assert'\nimport { toHex } from '@xylabs/hex'\nimport { toUint8Array } from '@xyo-network/hash'\nimport keccak256 from 'keccak256'\n\nimport { AbstractData } from './AbstractData'\nimport { DataLike } from './DataLike'\n\nexport class Data extends AbstractData {\n private _bytes?: ArrayBuffer\n private _length: number\n\n constructor(length: number, bytes?: DataLike)\n constructor(length: number, bytes: string, base?: number)\n constructor(length: number, bytes?: DataLike, base?: number) {\n super()\n this._bytes = toUint8Array(bytes, length, base)\n this._length = length\n }\n\n get base58() {\n this.checkLength()\n return base58.encode(new Uint8Array(this.bytes))\n }\n\n get bytes() {\n return assertEx(this._bytes, 'Data uninitialized')\n }\n\n get hex() {\n this.checkLength()\n return base16.encode(new Uint8Array(this.bytes)).toLowerCase()\n }\n\n get keccak256() {\n this.checkLength()\n return Buffer.from(keccak256(`0x${toHex(this.bytes)}`))\n }\n\n static from(data: DataLike | undefined) {\n return data ? new Data(Data.lengthOf(data), data) : undefined\n }\n\n static lengthOf(data: DataLike): number {\n if (typeof data === 'string') {\n return data.length / 2\n } else if (data instanceof AbstractData) {\n return data.length\n } else {\n return typeof data.byteLength === 'function' ? data.byteLength : data.byteLength\n }\n }\n\n private checkLength() {\n assertEx(this.bytes.byteLength === this._length, `Length Mismatch: ${this.bytes.byteLength} !== ${this._length}`)\n }\n}\n","import { Logger } from '@xylabs/logger'\nimport { AnyObject } from '@xyo-network/object'\n\nexport type BaseParamsFields = {\n logger?: Logger\n}\n\nexport type BaseParams<TAdditionalParams extends AnyObject | void = void> = TAdditionalParams extends AnyObject\n ? BaseParamsFields & TAdditionalParams\n : BaseParamsFields\n\nexport abstract class Base<TParams extends BaseParams = BaseParams> {\n static defaultLogger?: Logger\n\n constructor(readonly params: TParams) {\n params.logger?.debug(`Base constructed [${Object(this).name}]`)\n }\n\n protected get logger() {\n return this.params?.logger ?? Base.defaultLogger ?? console\n }\n}\n","const dumpErrors = (errors: Error[]) => {\n errors.forEach((error) => {\n console.log(error, null, 2)\n })\n}\n\nexport { dumpErrors }\n","export const isBrowser = () => {\n return typeof process === 'undefined'\n}\n","import { v4 } from 'uuid'\n\nexport const uuid = () => {\n try {\n return v4()\n } catch {\n //generally if no crypto library support\n const bytes: number[] = []\n for (let i = 0; i < 16; i++) {\n bytes.push(Math.floor(Math.random() * 256))\n }\n console.log(`bytes: ${JSON.stringify(bytes)}`)\n return `${bytes[0].toString(16)}${bytes[1].toString(16)}${bytes[2].toString(16)}${bytes[3].toString(16)}-${bytes[4].toString(\n 16,\n )}${bytes[5].toString(16)}-${bytes[6].toString(16)}${bytes[7].toString(16)}-${bytes[8].toString(16)}${bytes[9].toString(16)}-${bytes[10].toString(\n 16,\n )}${bytes[11].toString(16)}${bytes[12].toString(16)}${bytes[13].toString(16)}${bytes[14].toString(16)}${bytes[15].toString(16)}`\n }\n}\n","import { Promisable } from '@xylabs/promise'\nimport { AnyObject, ObjectWrapper } from '@xyo-network/object'\n\nexport interface Validator<T extends AnyObject = AnyObject> {\n validate(payload: T): Promisable<Error[]>\n}\n\nexport abstract class ValidatorBase<T extends AnyObject = AnyObject> extends ObjectWrapper<T> implements Validator<T> {\n abstract validate(payload: T): Promisable<Error[]>\n}\n","export * from './Data'\nexport * from './lib'\nexport * from '@xyo-network/address'\nexport * from '@xyo-network/hash'\nexport * from '@xyo-network/object'\nexport * from '@xyo-network/wasm'\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/Data/AbstractData.ts","../../src/Data/Data.ts","../../src/Data/toUint8Array.ts","../../src/lib/Base.ts","../../src/lib/dumpErrors.ts","../../src/lib/isBrowser.ts","../../src/lib/uuid.ts","../../src/lib/Validator.ts","../../src/index.ts"],"sourcesContent":["export abstract class AbstractData {\n get length() {\n return this.bytes.byteLength\n }\n\n abstract get bytes(): ArrayBuffer\n\n abstract get hex(): string\n\n abstract get keccak256(): ArrayBuffer\n\n static is(value: unknown): value is AbstractData {\n return value instanceof AbstractData\n }\n}\n","/* eslint-disable import/no-deprecated */\nimport { base16, base58 } from '@scure/base'\nimport { toArrayBuffer } from '@xylabs/arraybuffer'\nimport { assertEx } from '@xylabs/assert'\nimport { keccak256 } from 'ethers'\n\nimport { AbstractData } from './AbstractData'\nimport { DataLike } from './DataLike'\nimport { toUint8ArrayOptional } from './toUint8Array'\n\nexport class Data extends AbstractData {\n private _bytes?: ArrayBuffer\n private _length: number\n\n constructor(length: number, bytes?: DataLike)\n constructor(length: number, bytes: string, base?: number)\n constructor(length: number, bytes?: DataLike, base?: number) {\n super()\n this._bytes = toUint8ArrayOptional(bytes, length, base)\n this._length = length\n }\n\n get base58() {\n this.checkLength()\n return base58.encode(new Uint8Array(this.bytes))\n }\n\n get bytes() {\n return assertEx(this._bytes, 'Data uninitialized')\n }\n\n get hex() {\n this.checkLength()\n return base16.encode(new Uint8Array(this.bytes)).toLowerCase()\n }\n\n get keccak256() {\n this.checkLength()\n return toArrayBuffer(keccak256(new Uint8Array(this.bytes)))\n }\n\n static from(data: DataLike | undefined) {\n return data ? new Data(Data.lengthOf(data), data) : undefined\n }\n\n static lengthOf(data: DataLike): number {\n if (typeof data === 'string') {\n return data.length / 2\n } else if (data instanceof AbstractData) {\n return data.length\n } else {\n return typeof data.byteLength === 'function' ? data.byteLength : data.byteLength\n }\n }\n\n private checkLength() {\n assertEx(this.bytes.byteLength === this._length, `Length Mismatch: ${this.bytes.byteLength} !== ${this._length}`)\n }\n}\n","import { base16, base58 } from '@scure/base'\nimport { assertEx } from '@xylabs/assert'\nimport { ifTypeOf } from '@xyo-network/typeof'\n\nimport { DataLike } from './DataLike'\n\nconst stringToUint8Array = (value: string, base = 16) => {\n switch (base) {\n case 16:\n return base16.decode((value.startsWith('0x') ? value.slice(2) : value).toUpperCase())\n case 58:\n return base58.decode(value)\n default:\n throw Error(`Unsupported base [${base}]`)\n }\n}\n\n/** @deprecated use ArrayBuffer instead */\nexport const toUint8ArrayOptional = (value?: DataLike, padLength?: number, base?: number): Uint8Array | undefined => {\n return value ? toUint8Array(value, padLength, base) : undefined\n}\n\nexport function toUint8Array(value: undefined, padLength?: number, base?: number): undefined\nexport function toUint8Array(value: DataLike, padLength?: number, base?: number): Uint8Array\nexport function toUint8Array(value: DataLike | undefined, padLength?: number, base?: number): Uint8Array | undefined\nexport function toUint8Array(value?: DataLike, padLength?: number, base?: number): Uint8Array | undefined {\n if (value === undefined) return undefined\n\n let result: Uint8Array | undefined =\n ifTypeOf<string, Uint8Array>('string', value as string, (value) => stringToUint8Array(value, base)) ?? (value as Uint8Array)\n\n if (result === undefined) {\n throw Error(`toUint8Array - Unknown type: ${typeof value}`)\n }\n\n if (padLength && result.length < padLength) {\n result = new Uint8Array([...new Uint8Array(padLength - result.length), ...result])\n assertEx(result?.length <= padLength, 'Resulting length is greater than padLength')\n }\n\n return result\n}\n","import { Logger } from '@xylabs/logger'\nimport { AnyObject } from '@xyo-network/object'\n\nexport type BaseParamsFields = {\n logger?: Logger\n}\n\nexport type BaseParams<TAdditionalParams extends AnyObject | void = void> = TAdditionalParams extends AnyObject\n ? BaseParamsFields & TAdditionalParams\n : BaseParamsFields\n\nexport abstract class Base<TParams extends BaseParams = BaseParams> {\n static defaultLogger?: Logger\n\n constructor(readonly params: TParams) {\n params.logger?.debug(`Base constructed [${Object(this).name}]`)\n }\n\n protected get logger() {\n return this.params?.logger ?? Base.defaultLogger ?? console\n }\n}\n","const dumpErrors = (errors: Error[]) => {\n errors.forEach((error) => {\n console.log(error, null, 2)\n })\n}\n\nexport { dumpErrors }\n","export const isBrowser = () => {\n return typeof process === 'undefined'\n}\n","import { v4 } from 'uuid'\n\nexport const uuid = () => {\n try {\n return v4()\n } catch {\n //generally if no crypto library support\n const bytes: number[] = []\n for (let i = 0; i < 16; i++) {\n bytes.push(Math.floor(Math.random() * 256))\n }\n console.log(`bytes: ${JSON.stringify(bytes)}`)\n return `${bytes[0].toString(16)}${bytes[1].toString(16)}${bytes[2].toString(16)}${bytes[3].toString(16)}-${bytes[4].toString(\n 16,\n )}${bytes[5].toString(16)}-${bytes[6].toString(16)}${bytes[7].toString(16)}-${bytes[8].toString(16)}${bytes[9].toString(16)}-${bytes[10].toString(\n 16,\n )}${bytes[11].toString(16)}${bytes[12].toString(16)}${bytes[13].toString(16)}${bytes[14].toString(16)}${bytes[15].toString(16)}`\n }\n}\n","import { Promisable } from '@xylabs/promise'\nimport { AnyObject, ObjectWrapper } from '@xyo-network/object'\n\nexport interface Validator<T extends AnyObject = AnyObject> {\n validate(payload: T): Promisable<Error[]>\n}\n\nexport abstract class ValidatorBase<T extends AnyObject = AnyObject> extends ObjectWrapper<T> implements Validator<T> {\n abstract validate(payload: T): Promisable<Error[]>\n}\n","export * from './Data'\nexport * from './lib'\nexport * from '@xyo-network/address'\nexport * from '@xyo-network/hash'\nexport * from '@xyo-network/object'\nexport * from '@xyo-network/wasm'\n"],"mappings":"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","names":["base16","base58","assertEx","value","base58","assertEx","base16"]}
@@ -1,9 +1,8 @@
1
- /// <reference types="node" />
2
1
  export declare abstract class AbstractData {
3
2
  get length(): number;
4
3
  abstract get bytes(): ArrayBuffer;
5
4
  abstract get hex(): string;
6
- abstract get keccak256(): Buffer;
5
+ abstract get keccak256(): ArrayBuffer;
7
6
  static is(value: unknown): value is AbstractData;
8
7
  }
9
8
  //# sourceMappingURL=AbstractData.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractData.d.ts","sourceRoot":"","sources":["../../../src/Data/AbstractData.ts"],"names":[],"mappings":";AAAA,8BAAsB,YAAY;IAChC,IAAI,MAAM,WAET;IAED,QAAQ,KAAK,KAAK,IAAI,WAAW,CAAA;IAEjC,QAAQ,KAAK,GAAG,IAAI,MAAM,CAAA;IAE1B,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAA;IAEhC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY;CAGjD"}
1
+ {"version":3,"file":"AbstractData.d.ts","sourceRoot":"","sources":["../../../src/Data/AbstractData.ts"],"names":[],"mappings":"AAAA,8BAAsB,YAAY;IAChC,IAAI,MAAM,WAET;IAED,QAAQ,KAAK,KAAK,IAAI,WAAW,CAAA;IAEjC,QAAQ,KAAK,GAAG,IAAI,MAAM,CAAA;IAE1B,QAAQ,KAAK,SAAS,IAAI,WAAW,CAAA;IAErC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY;CAGjD"}
@@ -1,9 +1,8 @@
1
- /// <reference types="node" />
2
1
  export declare abstract class AbstractData {
3
2
  get length(): number;
4
3
  abstract get bytes(): ArrayBuffer;
5
4
  abstract get hex(): string;
6
- abstract get keccak256(): Buffer;
5
+ abstract get keccak256(): ArrayBuffer;
7
6
  static is(value: unknown): value is AbstractData;
8
7
  }
9
8
  //# sourceMappingURL=AbstractData.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractData.d.ts","sourceRoot":"","sources":["../../../src/Data/AbstractData.ts"],"names":[],"mappings":";AAAA,8BAAsB,YAAY;IAChC,IAAI,MAAM,WAET;IAED,QAAQ,KAAK,KAAK,IAAI,WAAW,CAAA;IAEjC,QAAQ,KAAK,GAAG,IAAI,MAAM,CAAA;IAE1B,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAA;IAEhC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY;CAGjD"}
1
+ {"version":3,"file":"AbstractData.d.ts","sourceRoot":"","sources":["../../../src/Data/AbstractData.ts"],"names":[],"mappings":"AAAA,8BAAsB,YAAY;IAChC,IAAI,MAAM,WAET;IAED,QAAQ,KAAK,KAAK,IAAI,WAAW,CAAA;IAEjC,QAAQ,KAAK,GAAG,IAAI,MAAM,CAAA;IAE1B,QAAQ,KAAK,SAAS,IAAI,WAAW,CAAA;IAErC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY;CAGjD"}
@@ -1,9 +1,8 @@
1
- /// <reference types="node" />
2
1
  export declare abstract class AbstractData {
3
2
  get length(): number;
4
3
  abstract get bytes(): ArrayBuffer;
5
4
  abstract get hex(): string;
6
- abstract get keccak256(): Buffer;
5
+ abstract get keccak256(): ArrayBuffer;
7
6
  static is(value: unknown): value is AbstractData;
8
7
  }
9
8
  //# sourceMappingURL=AbstractData.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractData.d.ts","sourceRoot":"","sources":["../../../src/Data/AbstractData.ts"],"names":[],"mappings":";AAAA,8BAAsB,YAAY;IAChC,IAAI,MAAM,WAET;IAED,QAAQ,KAAK,KAAK,IAAI,WAAW,CAAA;IAEjC,QAAQ,KAAK,GAAG,IAAI,MAAM,CAAA;IAE1B,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAA;IAEhC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY;CAGjD"}
1
+ {"version":3,"file":"AbstractData.d.ts","sourceRoot":"","sources":["../../../src/Data/AbstractData.ts"],"names":[],"mappings":"AAAA,8BAAsB,YAAY;IAChC,IAAI,MAAM,WAET;IAED,QAAQ,KAAK,KAAK,IAAI,WAAW,CAAA;IAEjC,QAAQ,KAAK,GAAG,IAAI,MAAM,CAAA;IAE1B,QAAQ,KAAK,SAAS,IAAI,WAAW,CAAA;IAErC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY;CAGjD"}
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { AbstractData } from './AbstractData';
3
2
  import { DataLike } from './DataLike';
4
3
  export declare class Data extends AbstractData {
@@ -9,7 +8,7 @@ export declare class Data extends AbstractData {
9
8
  get base58(): string;
10
9
  get bytes(): ArrayBuffer;
11
10
  get hex(): string;
12
- get keccak256(): Buffer;
11
+ get keccak256(): Uint8Array;
13
12
  static from(data: DataLike | undefined): Data | undefined;
14
13
  static lengthOf(data: DataLike): number;
15
14
  private checkLength;
@@ -1 +1 @@
1
- {"version":3,"file":"Data.d.ts","sourceRoot":"","sources":["../../../src/Data/Data.ts"],"names":[],"mappings":";AAOA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,qBAAa,IAAK,SAAQ,YAAY;IACpC,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B,OAAO,CAAC,OAAO,CAAQ;gBAEX,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,QAAQ;gBAChC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAOxD,IAAI,MAAM,WAGT;IAED,IAAI,KAAK,gBAER;IAED,IAAI,GAAG,WAGN;IAED,IAAI,SAAS,WAGZ;IAED,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS;IAItC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;IAUvC,OAAO,CAAC,WAAW;CAGpB"}
1
+ {"version":3,"file":"Data.d.ts","sourceRoot":"","sources":["../../../src/Data/Data.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAGrC,qBAAa,IAAK,SAAQ,YAAY;IACpC,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B,OAAO,CAAC,OAAO,CAAQ;gBAEX,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,QAAQ;gBAChC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAOxD,IAAI,MAAM,WAGT;IAED,IAAI,KAAK,gBAER;IAED,IAAI,GAAG,WAGN;IAED,IAAI,SAAS,eAGZ;IAED,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS;IAItC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;IAUvC,OAAO,CAAC,WAAW;CAGpB"}
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { AbstractData } from './AbstractData';
3
2
  import { DataLike } from './DataLike';
4
3
  export declare class Data extends AbstractData {
@@ -9,7 +8,7 @@ export declare class Data extends AbstractData {
9
8
  get base58(): string;
10
9
  get bytes(): ArrayBuffer;
11
10
  get hex(): string;
12
- get keccak256(): Buffer;
11
+ get keccak256(): Uint8Array;
13
12
  static from(data: DataLike | undefined): Data | undefined;
14
13
  static lengthOf(data: DataLike): number;
15
14
  private checkLength;
@@ -1 +1 @@
1
- {"version":3,"file":"Data.d.ts","sourceRoot":"","sources":["../../../src/Data/Data.ts"],"names":[],"mappings":";AAOA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,qBAAa,IAAK,SAAQ,YAAY;IACpC,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B,OAAO,CAAC,OAAO,CAAQ;gBAEX,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,QAAQ;gBAChC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAOxD,IAAI,MAAM,WAGT;IAED,IAAI,KAAK,gBAER;IAED,IAAI,GAAG,WAGN;IAED,IAAI,SAAS,WAGZ;IAED,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS;IAItC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;IAUvC,OAAO,CAAC,WAAW;CAGpB"}
1
+ {"version":3,"file":"Data.d.ts","sourceRoot":"","sources":["../../../src/Data/Data.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAGrC,qBAAa,IAAK,SAAQ,YAAY;IACpC,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B,OAAO,CAAC,OAAO,CAAQ;gBAEX,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,QAAQ;gBAChC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAOxD,IAAI,MAAM,WAGT;IAED,IAAI,KAAK,gBAER;IAED,IAAI,GAAG,WAGN;IAED,IAAI,SAAS,eAGZ;IAED,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS;IAItC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;IAUvC,OAAO,CAAC,WAAW;CAGpB"}
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { AbstractData } from './AbstractData';
3
2
  import { DataLike } from './DataLike';
4
3
  export declare class Data extends AbstractData {
@@ -9,7 +8,7 @@ export declare class Data extends AbstractData {
9
8
  get base58(): string;
10
9
  get bytes(): ArrayBuffer;
11
10
  get hex(): string;
12
- get keccak256(): Buffer;
11
+ get keccak256(): Uint8Array;
13
12
  static from(data: DataLike | undefined): Data | undefined;
14
13
  static lengthOf(data: DataLike): number;
15
14
  private checkLength;
@@ -1 +1 @@
1
- {"version":3,"file":"Data.d.ts","sourceRoot":"","sources":["../../../src/Data/Data.ts"],"names":[],"mappings":";AAOA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,qBAAa,IAAK,SAAQ,YAAY;IACpC,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B,OAAO,CAAC,OAAO,CAAQ;gBAEX,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,QAAQ;gBAChC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAOxD,IAAI,MAAM,WAGT;IAED,IAAI,KAAK,gBAER;IAED,IAAI,GAAG,WAGN;IAED,IAAI,SAAS,WAGZ;IAED,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS;IAItC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;IAUvC,OAAO,CAAC,WAAW;CAGpB"}
1
+ {"version":3,"file":"Data.d.ts","sourceRoot":"","sources":["../../../src/Data/Data.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAGrC,qBAAa,IAAK,SAAQ,YAAY;IACpC,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B,OAAO,CAAC,OAAO,CAAQ;gBAEX,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,QAAQ;gBAChC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAOxD,IAAI,MAAM,WAGT;IAED,IAAI,KAAK,gBAER;IAED,IAAI,GAAG,WAGN;IAED,IAAI,SAAS,eAGZ;IAED,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS;IAItC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;IAUvC,OAAO,CAAC,WAAW;CAGpB"}
@@ -1,4 +1,5 @@
1
1
  export * from './AbstractData';
2
2
  export * from './Data';
3
3
  export * from './DataLike';
4
+ export * from './toUint8Array';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Data/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Data/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA"}
@@ -1,4 +1,5 @@
1
1
  export * from './AbstractData';
2
2
  export * from './Data';
3
3
  export * from './DataLike';
4
+ export * from './toUint8Array';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Data/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Data/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA"}
@@ -1,4 +1,5 @@
1
1
  export * from './AbstractData';
2
2
  export * from './Data';
3
3
  export * from './DataLike';
4
+ export * from './toUint8Array';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Data/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Data/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { DataLike } from './DataLike';
2
+ /** @deprecated use ArrayBuffer instead */
3
+ export declare const toUint8ArrayOptional: (value?: DataLike, padLength?: number, base?: number) => Uint8Array | undefined;
4
+ export declare function toUint8Array(value: undefined, padLength?: number, base?: number): undefined;
5
+ export declare function toUint8Array(value: DataLike, padLength?: number, base?: number): Uint8Array;
6
+ export declare function toUint8Array(value: DataLike | undefined, padLength?: number, base?: number): Uint8Array | undefined;
7
+ //# sourceMappingURL=toUint8Array.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toUint8Array.d.ts","sourceRoot":"","sources":["../../../src/Data/toUint8Array.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAarC,0CAA0C;AAC1C,eAAO,MAAM,oBAAoB,WAAY,QAAQ,cAAc,MAAM,SAAS,MAAM,KAAG,UAAU,GAAG,SAEvG,CAAA;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;AAC5F,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAAA;AAC5F,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { DataLike } from './DataLike';
2
+ /** @deprecated use ArrayBuffer instead */
3
+ export declare const toUint8ArrayOptional: (value?: DataLike, padLength?: number, base?: number) => Uint8Array | undefined;
4
+ export declare function toUint8Array(value: undefined, padLength?: number, base?: number): undefined;
5
+ export declare function toUint8Array(value: DataLike, padLength?: number, base?: number): Uint8Array;
6
+ export declare function toUint8Array(value: DataLike | undefined, padLength?: number, base?: number): Uint8Array | undefined;
7
+ //# sourceMappingURL=toUint8Array.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toUint8Array.d.ts","sourceRoot":"","sources":["../../../src/Data/toUint8Array.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAarC,0CAA0C;AAC1C,eAAO,MAAM,oBAAoB,WAAY,QAAQ,cAAc,MAAM,SAAS,MAAM,KAAG,UAAU,GAAG,SAEvG,CAAA;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;AAC5F,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAAA;AAC5F,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { DataLike } from './DataLike';
2
+ /** @deprecated use ArrayBuffer instead */
3
+ export declare const toUint8ArrayOptional: (value?: DataLike, padLength?: number, base?: number) => Uint8Array | undefined;
4
+ export declare function toUint8Array(value: undefined, padLength?: number, base?: number): undefined;
5
+ export declare function toUint8Array(value: DataLike, padLength?: number, base?: number): Uint8Array;
6
+ export declare function toUint8Array(value: DataLike | undefined, padLength?: number, base?: number): Uint8Array | undefined;
7
+ //# sourceMappingURL=toUint8Array.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toUint8Array.d.ts","sourceRoot":"","sources":["../../../src/Data/toUint8Array.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAarC,0CAA0C;AAC1C,eAAO,MAAM,oBAAoB,WAAY,QAAQ,cAAc,MAAM,SAAS,MAAM,KAAG,UAAU,GAAG,SAEvG,CAAA;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;AAC5F,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAAA;AAC5F,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAA"}
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
- var __create = Object.create;
3
2
  var __defProp = Object.defineProperty;
4
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
6
  var __export = (target, all) => {
9
7
  for (var name in all)
@@ -18,14 +16,6 @@ var __copyProps = (to, from, except, desc) => {
18
16
  return to;
19
17
  };
20
18
  var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
21
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
- // If the importer is in node compatibility mode or this is not an ESM
23
- // file that has been converted to a CommonJS file using a Babel-
24
- // compatible transform (i.e. "__esModule" has not been set), then set
25
- // "default" to the CommonJS "module.exports" for node compatibility.
26
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
- mod
28
- ));
29
19
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
20
 
31
21
  // src/index.ts
@@ -37,6 +27,8 @@ __export(src_exports, {
37
27
  ValidatorBase: () => ValidatorBase,
38
28
  dumpErrors: () => dumpErrors,
39
29
  isBrowser: () => isBrowser,
30
+ toUint8Array: () => toUint8Array,
31
+ toUint8ArrayOptional: () => toUint8ArrayOptional,
40
32
  uuid: () => uuid
41
33
  });
42
34
  module.exports = __toCommonJS(src_exports);
@@ -52,33 +44,65 @@ var AbstractData = class _AbstractData {
52
44
  };
53
45
 
54
46
  // src/Data/Data.ts
47
+ var import_base2 = require("@scure/base");
48
+ var import_arraybuffer = require("@xylabs/arraybuffer");
49
+ var import_assert2 = require("@xylabs/assert");
50
+ var import_ethers = require("ethers");
51
+
52
+ // src/Data/toUint8Array.ts
55
53
  var import_base = require("@scure/base");
56
54
  var import_assert = require("@xylabs/assert");
57
- var import_hex = require("@xylabs/hex");
58
- var import_hash = require("@xyo-network/hash");
59
- var import_keccak256 = __toESM(require("keccak256"), 1);
55
+ var import_typeof = require("@xyo-network/typeof");
56
+ var stringToUint8Array = (value, base = 16) => {
57
+ switch (base) {
58
+ case 16:
59
+ return import_base.base16.decode((value.startsWith("0x") ? value.slice(2) : value).toUpperCase());
60
+ case 58:
61
+ return import_base.base58.decode(value);
62
+ default:
63
+ throw Error(`Unsupported base [${base}]`);
64
+ }
65
+ };
66
+ var toUint8ArrayOptional = (value, padLength, base) => {
67
+ return value ? toUint8Array(value, padLength, base) : void 0;
68
+ };
69
+ function toUint8Array(value, padLength, base) {
70
+ if (value === void 0)
71
+ return void 0;
72
+ let result = (0, import_typeof.ifTypeOf)("string", value, (value2) => stringToUint8Array(value2, base)) ?? value;
73
+ if (result === void 0) {
74
+ throw Error(`toUint8Array - Unknown type: ${typeof value}`);
75
+ }
76
+ if (padLength && result.length < padLength) {
77
+ result = new Uint8Array([...new Uint8Array(padLength - result.length), ...result]);
78
+ (0, import_assert.assertEx)((result == null ? void 0 : result.length) <= padLength, "Resulting length is greater than padLength");
79
+ }
80
+ return result;
81
+ }
82
+
83
+ // src/Data/Data.ts
60
84
  var Data = class _Data extends AbstractData {
61
85
  _bytes;
62
86
  _length;
63
87
  constructor(length, bytes, base) {
64
88
  super();
65
- this._bytes = (0, import_hash.toUint8Array)(bytes, length, base);
89
+ this._bytes = toUint8ArrayOptional(bytes, length, base);
66
90
  this._length = length;
67
91
  }
68
92
  get base58() {
69
93
  this.checkLength();
70
- return import_base.base58.encode(new Uint8Array(this.bytes));
94
+ return import_base2.base58.encode(new Uint8Array(this.bytes));
71
95
  }
72
96
  get bytes() {
73
- return (0, import_assert.assertEx)(this._bytes, "Data uninitialized");
97
+ return (0, import_assert2.assertEx)(this._bytes, "Data uninitialized");
74
98
  }
75
99
  get hex() {
76
100
  this.checkLength();
77
- return import_base.base16.encode(new Uint8Array(this.bytes)).toLowerCase();
101
+ return import_base2.base16.encode(new Uint8Array(this.bytes)).toLowerCase();
78
102
  }
79
103
  get keccak256() {
80
104
  this.checkLength();
81
- return Buffer.from((0, import_keccak256.default)(`0x${(0, import_hex.toHex)(this.bytes)}`));
105
+ return (0, import_arraybuffer.toArrayBuffer)((0, import_ethers.keccak256)(new Uint8Array(this.bytes)));
82
106
  }
83
107
  static from(data) {
84
108
  return data ? new _Data(_Data.lengthOf(data), data) : void 0;
@@ -93,7 +117,7 @@ var Data = class _Data extends AbstractData {
93
117
  }
94
118
  }
95
119
  checkLength() {
96
- (0, import_assert.assertEx)(this.bytes.byteLength === this._length, `Length Mismatch: ${this.bytes.byteLength} !== ${this._length}`);
120
+ (0, import_assert2.assertEx)(this.bytes.byteLength === this._length, `Length Mismatch: ${this.bytes.byteLength} !== ${this._length}`);
97
121
  }
98
122
  };
99
123
 
@@ -160,6 +184,8 @@ __reExport(src_exports, require("@xyo-network/wasm"), module.exports);
160
184
  ValidatorBase,
161
185
  dumpErrors,
162
186
  isBrowser,
187
+ toUint8Array,
188
+ toUint8ArrayOptional,
163
189
  uuid,
164
190
  ...require("@xyo-network/address"),
165
191
  ...require("@xyo-network/hash"),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/Data/AbstractData.ts","../../src/Data/Data.ts","../../src/lib/Base.ts","../../src/lib/dumpErrors.ts","../../src/lib/isBrowser.ts","../../src/lib/uuid.ts","../../src/lib/Validator.ts"],"sourcesContent":["export * from './Data'\nexport * from './lib'\nexport * from '@xyo-network/address'\nexport * from '@xyo-network/hash'\nexport * from '@xyo-network/object'\nexport * from '@xyo-network/wasm'\n","export abstract class AbstractData {\n get length() {\n return this.bytes.byteLength\n }\n\n abstract get bytes(): ArrayBuffer\n\n abstract get hex(): string\n\n abstract get keccak256(): Buffer\n\n static is(value: unknown): value is AbstractData {\n return value instanceof AbstractData\n }\n}\n","/* eslint-disable import/no-deprecated */\nimport { base16, base58 } from '@scure/base'\nimport { assertEx } from '@xylabs/assert'\nimport { toHex } from '@xylabs/hex'\nimport { toUint8Array } from '@xyo-network/hash'\nimport keccak256 from 'keccak256'\n\nimport { AbstractData } from './AbstractData'\nimport { DataLike } from './DataLike'\n\nexport class Data extends AbstractData {\n private _bytes?: ArrayBuffer\n private _length: number\n\n constructor(length: number, bytes?: DataLike)\n constructor(length: number, bytes: string, base?: number)\n constructor(length: number, bytes?: DataLike, base?: number) {\n super()\n this._bytes = toUint8Array(bytes, length, base)\n this._length = length\n }\n\n get base58() {\n this.checkLength()\n return base58.encode(new Uint8Array(this.bytes))\n }\n\n get bytes() {\n return assertEx(this._bytes, 'Data uninitialized')\n }\n\n get hex() {\n this.checkLength()\n return base16.encode(new Uint8Array(this.bytes)).toLowerCase()\n }\n\n get keccak256() {\n this.checkLength()\n return Buffer.from(keccak256(`0x${toHex(this.bytes)}`))\n }\n\n static from(data: DataLike | undefined) {\n return data ? new Data(Data.lengthOf(data), data) : undefined\n }\n\n static lengthOf(data: DataLike): number {\n if (typeof data === 'string') {\n return data.length / 2\n } else if (data instanceof AbstractData) {\n return data.length\n } else {\n return typeof data.byteLength === 'function' ? data.byteLength : data.byteLength\n }\n }\n\n private checkLength() {\n assertEx(this.bytes.byteLength === this._length, `Length Mismatch: ${this.bytes.byteLength} !== ${this._length}`)\n }\n}\n","import { Logger } from '@xylabs/logger'\nimport { AnyObject } from '@xyo-network/object'\n\nexport type BaseParamsFields = {\n logger?: Logger\n}\n\nexport type BaseParams<TAdditionalParams extends AnyObject | void = void> = TAdditionalParams extends AnyObject\n ? BaseParamsFields & TAdditionalParams\n : BaseParamsFields\n\nexport abstract class Base<TParams extends BaseParams = BaseParams> {\n static defaultLogger?: Logger\n\n constructor(readonly params: TParams) {\n params.logger?.debug(`Base constructed [${Object(this).name}]`)\n }\n\n protected get logger() {\n return this.params?.logger ?? Base.defaultLogger ?? console\n }\n}\n","const dumpErrors = (errors: Error[]) => {\n errors.forEach((error) => {\n console.log(error, null, 2)\n })\n}\n\nexport { dumpErrors }\n","export const isBrowser = () => {\n return typeof process === 'undefined'\n}\n","import { v4 } from 'uuid'\n\nexport const uuid = () => {\n try {\n return v4()\n } catch {\n //generally if no crypto library support\n const bytes: number[] = []\n for (let i = 0; i < 16; i++) {\n bytes.push(Math.floor(Math.random() * 256))\n }\n console.log(`bytes: ${JSON.stringify(bytes)}`)\n return `${bytes[0].toString(16)}${bytes[1].toString(16)}${bytes[2].toString(16)}${bytes[3].toString(16)}-${bytes[4].toString(\n 16,\n )}${bytes[5].toString(16)}-${bytes[6].toString(16)}${bytes[7].toString(16)}-${bytes[8].toString(16)}${bytes[9].toString(16)}-${bytes[10].toString(\n 16,\n )}${bytes[11].toString(16)}${bytes[12].toString(16)}${bytes[13].toString(16)}${bytes[14].toString(16)}${bytes[15].toString(16)}`\n }\n}\n","import { Promisable } from '@xylabs/promise'\nimport { AnyObject, ObjectWrapper } from '@xyo-network/object'\n\nexport interface Validator<T extends AnyObject = AnyObject> {\n validate(payload: T): Promisable<Error[]>\n}\n\nexport abstract class ValidatorBase<T extends AnyObject = AnyObject> extends ObjectWrapper<T> implements Validator<T> {\n abstract validate(payload: T): Promisable<Error[]>\n}\n"],"mappings":"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","names":["keccak256"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/Data/AbstractData.ts","../../src/Data/Data.ts","../../src/Data/toUint8Array.ts","../../src/lib/Base.ts","../../src/lib/dumpErrors.ts","../../src/lib/isBrowser.ts","../../src/lib/uuid.ts","../../src/lib/Validator.ts"],"sourcesContent":["export * from './Data'\nexport * from './lib'\nexport * from '@xyo-network/address'\nexport * from '@xyo-network/hash'\nexport * from '@xyo-network/object'\nexport * from '@xyo-network/wasm'\n","export abstract class AbstractData {\n get length() {\n return this.bytes.byteLength\n }\n\n abstract get bytes(): ArrayBuffer\n\n abstract get hex(): string\n\n abstract get keccak256(): ArrayBuffer\n\n static is(value: unknown): value is AbstractData {\n return value instanceof AbstractData\n }\n}\n","/* eslint-disable import/no-deprecated */\nimport { base16, base58 } from '@scure/base'\nimport { toArrayBuffer } from '@xylabs/arraybuffer'\nimport { assertEx } from '@xylabs/assert'\nimport { keccak256 } from 'ethers'\n\nimport { AbstractData } from './AbstractData'\nimport { DataLike } from './DataLike'\nimport { toUint8ArrayOptional } from './toUint8Array'\n\nexport class Data extends AbstractData {\n private _bytes?: ArrayBuffer\n private _length: number\n\n constructor(length: number, bytes?: DataLike)\n constructor(length: number, bytes: string, base?: number)\n constructor(length: number, bytes?: DataLike, base?: number) {\n super()\n this._bytes = toUint8ArrayOptional(bytes, length, base)\n this._length = length\n }\n\n get base58() {\n this.checkLength()\n return base58.encode(new Uint8Array(this.bytes))\n }\n\n get bytes() {\n return assertEx(this._bytes, 'Data uninitialized')\n }\n\n get hex() {\n this.checkLength()\n return base16.encode(new Uint8Array(this.bytes)).toLowerCase()\n }\n\n get keccak256() {\n this.checkLength()\n return toArrayBuffer(keccak256(new Uint8Array(this.bytes)))\n }\n\n static from(data: DataLike | undefined) {\n return data ? new Data(Data.lengthOf(data), data) : undefined\n }\n\n static lengthOf(data: DataLike): number {\n if (typeof data === 'string') {\n return data.length / 2\n } else if (data instanceof AbstractData) {\n return data.length\n } else {\n return typeof data.byteLength === 'function' ? data.byteLength : data.byteLength\n }\n }\n\n private checkLength() {\n assertEx(this.bytes.byteLength === this._length, `Length Mismatch: ${this.bytes.byteLength} !== ${this._length}`)\n }\n}\n","import { base16, base58 } from '@scure/base'\nimport { assertEx } from '@xylabs/assert'\nimport { ifTypeOf } from '@xyo-network/typeof'\n\nimport { DataLike } from './DataLike'\n\nconst stringToUint8Array = (value: string, base = 16) => {\n switch (base) {\n case 16:\n return base16.decode((value.startsWith('0x') ? value.slice(2) : value).toUpperCase())\n case 58:\n return base58.decode(value)\n default:\n throw Error(`Unsupported base [${base}]`)\n }\n}\n\n/** @deprecated use ArrayBuffer instead */\nexport const toUint8ArrayOptional = (value?: DataLike, padLength?: number, base?: number): Uint8Array | undefined => {\n return value ? toUint8Array(value, padLength, base) : undefined\n}\n\nexport function toUint8Array(value: undefined, padLength?: number, base?: number): undefined\nexport function toUint8Array(value: DataLike, padLength?: number, base?: number): Uint8Array\nexport function toUint8Array(value: DataLike | undefined, padLength?: number, base?: number): Uint8Array | undefined\nexport function toUint8Array(value?: DataLike, padLength?: number, base?: number): Uint8Array | undefined {\n if (value === undefined) return undefined\n\n let result: Uint8Array | undefined =\n ifTypeOf<string, Uint8Array>('string', value as string, (value) => stringToUint8Array(value, base)) ?? (value as Uint8Array)\n\n if (result === undefined) {\n throw Error(`toUint8Array - Unknown type: ${typeof value}`)\n }\n\n if (padLength && result.length < padLength) {\n result = new Uint8Array([...new Uint8Array(padLength - result.length), ...result])\n assertEx(result?.length <= padLength, 'Resulting length is greater than padLength')\n }\n\n return result\n}\n","import { Logger } from '@xylabs/logger'\nimport { AnyObject } from '@xyo-network/object'\n\nexport type BaseParamsFields = {\n logger?: Logger\n}\n\nexport type BaseParams<TAdditionalParams extends AnyObject | void = void> = TAdditionalParams extends AnyObject\n ? BaseParamsFields & TAdditionalParams\n : BaseParamsFields\n\nexport abstract class Base<TParams extends BaseParams = BaseParams> {\n static defaultLogger?: Logger\n\n constructor(readonly params: TParams) {\n params.logger?.debug(`Base constructed [${Object(this).name}]`)\n }\n\n protected get logger() {\n return this.params?.logger ?? Base.defaultLogger ?? console\n }\n}\n","const dumpErrors = (errors: Error[]) => {\n errors.forEach((error) => {\n console.log(error, null, 2)\n })\n}\n\nexport { dumpErrors }\n","export const isBrowser = () => {\n return typeof process === 'undefined'\n}\n","import { v4 } from 'uuid'\n\nexport const uuid = () => {\n try {\n return v4()\n } catch {\n //generally if no crypto library support\n const bytes: number[] = []\n for (let i = 0; i < 16; i++) {\n bytes.push(Math.floor(Math.random() * 256))\n }\n console.log(`bytes: ${JSON.stringify(bytes)}`)\n return `${bytes[0].toString(16)}${bytes[1].toString(16)}${bytes[2].toString(16)}${bytes[3].toString(16)}-${bytes[4].toString(\n 16,\n )}${bytes[5].toString(16)}-${bytes[6].toString(16)}${bytes[7].toString(16)}-${bytes[8].toString(16)}${bytes[9].toString(16)}-${bytes[10].toString(\n 16,\n )}${bytes[11].toString(16)}${bytes[12].toString(16)}${bytes[13].toString(16)}${bytes[14].toString(16)}${bytes[15].toString(16)}`\n }\n}\n","import { Promisable } from '@xylabs/promise'\nimport { AnyObject, ObjectWrapper } from '@xyo-network/object'\n\nexport interface Validator<T extends AnyObject = AnyObject> {\n validate(payload: T): Promisable<Error[]>\n}\n\nexport abstract class ValidatorBase<T extends AnyObject = AnyObject> extends ObjectWrapper<T> implements Validator<T> {\n abstract validate(payload: T): Promisable<Error[]>\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAO,IAAe,eAAf,MAAe,cAAa;AAAA,EACjC,IAAI,SAAS;AACX,WAAO,KAAK,MAAM;AAAA,EACpB;AAAA,EAQA,OAAO,GAAG,OAAuC;AAC/C,WAAO,iBAAiB;AAAA,EAC1B;AACF;;;ACbA,IAAAA,eAA+B;AAC/B,yBAA8B;AAC9B,IAAAC,iBAAyB;AACzB,oBAA0B;;;ACJ1B,kBAA+B;AAC/B,oBAAyB;AACzB,oBAAyB;AAIzB,IAAM,qBAAqB,CAAC,OAAe,OAAO,OAAO;AACvD,UAAQ,MAAM;AAAA,IACZ,KAAK;AACH,aAAO,mBAAO,QAAQ,MAAM,WAAW,IAAI,IAAI,MAAM,MAAM,CAAC,IAAI,OAAO,YAAY,CAAC;AAAA,IACtF,KAAK;AACH,aAAO,mBAAO,OAAO,KAAK;AAAA,IAC5B;AACE,YAAM,MAAM,qBAAqB,IAAI,GAAG;AAAA,EAC5C;AACF;AAGO,IAAM,uBAAuB,CAAC,OAAkB,WAAoB,SAA0C;AACnH,SAAO,QAAQ,aAAa,OAAO,WAAW,IAAI,IAAI;AACxD;AAKO,SAAS,aAAa,OAAkB,WAAoB,MAAuC;AACxG,MAAI,UAAU;AAAW,WAAO;AAEhC,MAAI,aACF,wBAA6B,UAAU,OAAiB,CAACC,WAAU,mBAAmBA,QAAO,IAAI,CAAC,KAAM;AAE1G,MAAI,WAAW,QAAW;AACxB,UAAM,MAAM,gCAAgC,OAAO,KAAK,EAAE;AAAA,EAC5D;AAEA,MAAI,aAAa,OAAO,SAAS,WAAW;AAC1C,aAAS,IAAI,WAAW,CAAC,GAAG,IAAI,WAAW,YAAY,OAAO,MAAM,GAAG,GAAG,MAAM,CAAC;AACjF,iCAAS,iCAAQ,WAAU,WAAW,4CAA4C;AAAA,EACpF;AAEA,SAAO;AACT;;;AD/BO,IAAM,OAAN,MAAM,cAAa,aAAa;AAAA,EAC7B;AAAA,EACA;AAAA,EAIR,YAAY,QAAgB,OAAkB,MAAe;AAC3D,UAAM;AACN,SAAK,SAAS,qBAAqB,OAAO,QAAQ,IAAI;AACtD,SAAK,UAAU;AAAA,EACjB;AAAA,EAEA,IAAI,SAAS;AACX,SAAK,YAAY;AACjB,WAAO,oBAAO,OAAO,IAAI,WAAW,KAAK,KAAK,CAAC;AAAA,EACjD;AAAA,EAEA,IAAI,QAAQ;AACV,eAAO,yBAAS,KAAK,QAAQ,oBAAoB;AAAA,EACnD;AAAA,EAEA,IAAI,MAAM;AACR,SAAK,YAAY;AACjB,WAAO,oBAAO,OAAO,IAAI,WAAW,KAAK,KAAK,CAAC,EAAE,YAAY;AAAA,EAC/D;AAAA,EAEA,IAAI,YAAY;AACd,SAAK,YAAY;AACjB,eAAO,sCAAc,yBAAU,IAAI,WAAW,KAAK,KAAK,CAAC,CAAC;AAAA,EAC5D;AAAA,EAEA,OAAO,KAAK,MAA4B;AACtC,WAAO,OAAO,IAAI,MAAK,MAAK,SAAS,IAAI,GAAG,IAAI,IAAI;AAAA,EACtD;AAAA,EAEA,OAAO,SAAS,MAAwB;AACtC,QAAI,OAAO,SAAS,UAAU;AAC5B,aAAO,KAAK,SAAS;AAAA,IACvB,WAAW,gBAAgB,cAAc;AACvC,aAAO,KAAK;AAAA,IACd,OAAO;AACL,aAAO,OAAO,KAAK,eAAe,aAAa,KAAK,aAAa,KAAK;AAAA,IACxE;AAAA,EACF;AAAA,EAEQ,cAAc;AACpB,iCAAS,KAAK,MAAM,eAAe,KAAK,SAAS,oBAAoB,KAAK,MAAM,UAAU,QAAQ,KAAK,OAAO,EAAE;AAAA,EAClH;AACF;;;AE/CO,IAAe,OAAf,MAAe,MAA8C;AAAA,EAGlE,YAAqB,QAAiB;AAAjB;AAdvB;AAeI,iBAAO,WAAP,mBAAe,MAAM,qBAAqB,OAAO,IAAI,EAAE,IAAI;AAAA,EAC7D;AAAA,EAJA,OAAO;AAAA,EAMP,IAAc,SAAS;AAlBzB;AAmBI,aAAO,UAAK,WAAL,mBAAa,WAAU,MAAK,iBAAiB;AAAA,EACtD;AACF;;;ACrBA,IAAM,aAAa,CAAC,WAAoB;AACtC,SAAO,QAAQ,CAAC,UAAU;AACxB,YAAQ,IAAI,OAAO,MAAM,CAAC;AAAA,EAC5B,CAAC;AACH;;;ACJO,IAAM,YAAY,MAAM;AAC7B,SAAO,OAAO,YAAY;AAC5B;;;ACFA,kBAAmB;AAEZ,IAAM,OAAO,MAAM;AACxB,MAAI;AACF,eAAO,gBAAG;AAAA,EACZ,QAAQ;AAEN,UAAM,QAAkB,CAAC;AACzB,aAAS,IAAI,GAAG,IAAI,IAAI,KAAK;AAC3B,YAAM,KAAK,KAAK,MAAM,KAAK,OAAO,IAAI,GAAG,CAAC;AAAA,IAC5C;AACA,YAAQ,IAAI,UAAU,KAAK,UAAU,KAAK,CAAC,EAAE;AAC7C,WAAO,GAAG,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,IAAI,MAAM,CAAC,EAAE;AAAA,MAClH;AAAA,IACF,CAAC,GAAG,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,IAAI,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,IAAI,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,IAAI,MAAM,EAAE,EAAE;AAAA,MACvI;AAAA,IACF,CAAC,GAAG,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC;AAAA,EAChI;AACF;;;ACjBA,oBAAyC;AAMlC,IAAe,gBAAf,cAAsE,4BAAyC;AAEtH;;;ARPA,wBAAc,iCAFd;AAGA,wBAAc,8BAHd;AAIA,wBAAc,gCAJd;AAKA,wBAAc,8BALd;","names":["import_base","import_assert","value"]}
@@ -9,33 +9,65 @@ var AbstractData = class _AbstractData {
9
9
  };
10
10
 
11
11
  // src/Data/Data.ts
12
+ import { base16 as base162, base58 as base582 } from "@scure/base";
13
+ import { toArrayBuffer } from "@xylabs/arraybuffer";
14
+ import { assertEx as assertEx2 } from "@xylabs/assert";
15
+ import { keccak256 } from "ethers";
16
+
17
+ // src/Data/toUint8Array.ts
12
18
  import { base16, base58 } from "@scure/base";
13
19
  import { assertEx } from "@xylabs/assert";
14
- import { toHex } from "@xylabs/hex";
15
- import { toUint8Array } from "@xyo-network/hash";
16
- import keccak256 from "keccak256";
20
+ import { ifTypeOf } from "@xyo-network/typeof";
21
+ var stringToUint8Array = (value, base = 16) => {
22
+ switch (base) {
23
+ case 16:
24
+ return base16.decode((value.startsWith("0x") ? value.slice(2) : value).toUpperCase());
25
+ case 58:
26
+ return base58.decode(value);
27
+ default:
28
+ throw Error(`Unsupported base [${base}]`);
29
+ }
30
+ };
31
+ var toUint8ArrayOptional = (value, padLength, base) => {
32
+ return value ? toUint8Array(value, padLength, base) : void 0;
33
+ };
34
+ function toUint8Array(value, padLength, base) {
35
+ if (value === void 0)
36
+ return void 0;
37
+ let result = ifTypeOf("string", value, (value2) => stringToUint8Array(value2, base)) ?? value;
38
+ if (result === void 0) {
39
+ throw Error(`toUint8Array - Unknown type: ${typeof value}`);
40
+ }
41
+ if (padLength && result.length < padLength) {
42
+ result = new Uint8Array([...new Uint8Array(padLength - result.length), ...result]);
43
+ assertEx((result == null ? void 0 : result.length) <= padLength, "Resulting length is greater than padLength");
44
+ }
45
+ return result;
46
+ }
47
+
48
+ // src/Data/Data.ts
17
49
  var Data = class _Data extends AbstractData {
18
50
  _bytes;
19
51
  _length;
20
52
  constructor(length, bytes, base) {
21
53
  super();
22
- this._bytes = toUint8Array(bytes, length, base);
54
+ this._bytes = toUint8ArrayOptional(bytes, length, base);
23
55
  this._length = length;
24
56
  }
25
57
  get base58() {
26
58
  this.checkLength();
27
- return base58.encode(new Uint8Array(this.bytes));
59
+ return base582.encode(new Uint8Array(this.bytes));
28
60
  }
29
61
  get bytes() {
30
- return assertEx(this._bytes, "Data uninitialized");
62
+ return assertEx2(this._bytes, "Data uninitialized");
31
63
  }
32
64
  get hex() {
33
65
  this.checkLength();
34
- return base16.encode(new Uint8Array(this.bytes)).toLowerCase();
66
+ return base162.encode(new Uint8Array(this.bytes)).toLowerCase();
35
67
  }
36
68
  get keccak256() {
37
69
  this.checkLength();
38
- return Buffer.from(keccak256(`0x${toHex(this.bytes)}`));
70
+ return toArrayBuffer(keccak256(new Uint8Array(this.bytes)));
39
71
  }
40
72
  static from(data) {
41
73
  return data ? new _Data(_Data.lengthOf(data), data) : void 0;
@@ -50,7 +82,7 @@ var Data = class _Data extends AbstractData {
50
82
  }
51
83
  }
52
84
  checkLength() {
53
- assertEx(this.bytes.byteLength === this._length, `Length Mismatch: ${this.bytes.byteLength} !== ${this._length}`);
85
+ assertEx2(this.bytes.byteLength === this._length, `Length Mismatch: ${this.bytes.byteLength} !== ${this._length}`);
54
86
  }
55
87
  };
56
88
 
@@ -116,6 +148,8 @@ export {
116
148
  ValidatorBase,
117
149
  dumpErrors,
118
150
  isBrowser,
151
+ toUint8Array,
152
+ toUint8ArrayOptional,
119
153
  uuid
120
154
  };
121
155
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Data/AbstractData.ts","../../src/Data/Data.ts","../../src/lib/Base.ts","../../src/lib/dumpErrors.ts","../../src/lib/isBrowser.ts","../../src/lib/uuid.ts","../../src/lib/Validator.ts","../../src/index.ts"],"sourcesContent":["export abstract class AbstractData {\n get length() {\n return this.bytes.byteLength\n }\n\n abstract get bytes(): ArrayBuffer\n\n abstract get hex(): string\n\n abstract get keccak256(): Buffer\n\n static is(value: unknown): value is AbstractData {\n return value instanceof AbstractData\n }\n}\n","/* eslint-disable import/no-deprecated */\nimport { base16, base58 } from '@scure/base'\nimport { assertEx } from '@xylabs/assert'\nimport { toHex } from '@xylabs/hex'\nimport { toUint8Array } from '@xyo-network/hash'\nimport keccak256 from 'keccak256'\n\nimport { AbstractData } from './AbstractData'\nimport { DataLike } from './DataLike'\n\nexport class Data extends AbstractData {\n private _bytes?: ArrayBuffer\n private _length: number\n\n constructor(length: number, bytes?: DataLike)\n constructor(length: number, bytes: string, base?: number)\n constructor(length: number, bytes?: DataLike, base?: number) {\n super()\n this._bytes = toUint8Array(bytes, length, base)\n this._length = length\n }\n\n get base58() {\n this.checkLength()\n return base58.encode(new Uint8Array(this.bytes))\n }\n\n get bytes() {\n return assertEx(this._bytes, 'Data uninitialized')\n }\n\n get hex() {\n this.checkLength()\n return base16.encode(new Uint8Array(this.bytes)).toLowerCase()\n }\n\n get keccak256() {\n this.checkLength()\n return Buffer.from(keccak256(`0x${toHex(this.bytes)}`))\n }\n\n static from(data: DataLike | undefined) {\n return data ? new Data(Data.lengthOf(data), data) : undefined\n }\n\n static lengthOf(data: DataLike): number {\n if (typeof data === 'string') {\n return data.length / 2\n } else if (data instanceof AbstractData) {\n return data.length\n } else {\n return typeof data.byteLength === 'function' ? data.byteLength : data.byteLength\n }\n }\n\n private checkLength() {\n assertEx(this.bytes.byteLength === this._length, `Length Mismatch: ${this.bytes.byteLength} !== ${this._length}`)\n }\n}\n","import { Logger } from '@xylabs/logger'\nimport { AnyObject } from '@xyo-network/object'\n\nexport type BaseParamsFields = {\n logger?: Logger\n}\n\nexport type BaseParams<TAdditionalParams extends AnyObject | void = void> = TAdditionalParams extends AnyObject\n ? BaseParamsFields & TAdditionalParams\n : BaseParamsFields\n\nexport abstract class Base<TParams extends BaseParams = BaseParams> {\n static defaultLogger?: Logger\n\n constructor(readonly params: TParams) {\n params.logger?.debug(`Base constructed [${Object(this).name}]`)\n }\n\n protected get logger() {\n return this.params?.logger ?? Base.defaultLogger ?? console\n }\n}\n","const dumpErrors = (errors: Error[]) => {\n errors.forEach((error) => {\n console.log(error, null, 2)\n })\n}\n\nexport { dumpErrors }\n","export const isBrowser = () => {\n return typeof process === 'undefined'\n}\n","import { v4 } from 'uuid'\n\nexport const uuid = () => {\n try {\n return v4()\n } catch {\n //generally if no crypto library support\n const bytes: number[] = []\n for (let i = 0; i < 16; i++) {\n bytes.push(Math.floor(Math.random() * 256))\n }\n console.log(`bytes: ${JSON.stringify(bytes)}`)\n return `${bytes[0].toString(16)}${bytes[1].toString(16)}${bytes[2].toString(16)}${bytes[3].toString(16)}-${bytes[4].toString(\n 16,\n )}${bytes[5].toString(16)}-${bytes[6].toString(16)}${bytes[7].toString(16)}-${bytes[8].toString(16)}${bytes[9].toString(16)}-${bytes[10].toString(\n 16,\n )}${bytes[11].toString(16)}${bytes[12].toString(16)}${bytes[13].toString(16)}${bytes[14].toString(16)}${bytes[15].toString(16)}`\n }\n}\n","import { Promisable } from '@xylabs/promise'\nimport { AnyObject, ObjectWrapper } from '@xyo-network/object'\n\nexport interface Validator<T extends AnyObject = AnyObject> {\n validate(payload: T): Promisable<Error[]>\n}\n\nexport abstract class ValidatorBase<T extends AnyObject = AnyObject> extends ObjectWrapper<T> implements Validator<T> {\n abstract validate(payload: T): Promisable<Error[]>\n}\n","export * from './Data'\nexport * from './lib'\nexport * from '@xyo-network/address'\nexport * from '@xyo-network/hash'\nexport * from '@xyo-network/object'\nexport * from '@xyo-network/wasm'\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/Data/AbstractData.ts","../../src/Data/Data.ts","../../src/Data/toUint8Array.ts","../../src/lib/Base.ts","../../src/lib/dumpErrors.ts","../../src/lib/isBrowser.ts","../../src/lib/uuid.ts","../../src/lib/Validator.ts","../../src/index.ts"],"sourcesContent":["export abstract class AbstractData {\n get length() {\n return this.bytes.byteLength\n }\n\n abstract get bytes(): ArrayBuffer\n\n abstract get hex(): string\n\n abstract get keccak256(): ArrayBuffer\n\n static is(value: unknown): value is AbstractData {\n return value instanceof AbstractData\n }\n}\n","/* eslint-disable import/no-deprecated */\nimport { base16, base58 } from '@scure/base'\nimport { toArrayBuffer } from '@xylabs/arraybuffer'\nimport { assertEx } from '@xylabs/assert'\nimport { keccak256 } from 'ethers'\n\nimport { AbstractData } from './AbstractData'\nimport { DataLike } from './DataLike'\nimport { toUint8ArrayOptional } from './toUint8Array'\n\nexport class Data extends AbstractData {\n private _bytes?: ArrayBuffer\n private _length: number\n\n constructor(length: number, bytes?: DataLike)\n constructor(length: number, bytes: string, base?: number)\n constructor(length: number, bytes?: DataLike, base?: number) {\n super()\n this._bytes = toUint8ArrayOptional(bytes, length, base)\n this._length = length\n }\n\n get base58() {\n this.checkLength()\n return base58.encode(new Uint8Array(this.bytes))\n }\n\n get bytes() {\n return assertEx(this._bytes, 'Data uninitialized')\n }\n\n get hex() {\n this.checkLength()\n return base16.encode(new Uint8Array(this.bytes)).toLowerCase()\n }\n\n get keccak256() {\n this.checkLength()\n return toArrayBuffer(keccak256(new Uint8Array(this.bytes)))\n }\n\n static from(data: DataLike | undefined) {\n return data ? new Data(Data.lengthOf(data), data) : undefined\n }\n\n static lengthOf(data: DataLike): number {\n if (typeof data === 'string') {\n return data.length / 2\n } else if (data instanceof AbstractData) {\n return data.length\n } else {\n return typeof data.byteLength === 'function' ? data.byteLength : data.byteLength\n }\n }\n\n private checkLength() {\n assertEx(this.bytes.byteLength === this._length, `Length Mismatch: ${this.bytes.byteLength} !== ${this._length}`)\n }\n}\n","import { base16, base58 } from '@scure/base'\nimport { assertEx } from '@xylabs/assert'\nimport { ifTypeOf } from '@xyo-network/typeof'\n\nimport { DataLike } from './DataLike'\n\nconst stringToUint8Array = (value: string, base = 16) => {\n switch (base) {\n case 16:\n return base16.decode((value.startsWith('0x') ? value.slice(2) : value).toUpperCase())\n case 58:\n return base58.decode(value)\n default:\n throw Error(`Unsupported base [${base}]`)\n }\n}\n\n/** @deprecated use ArrayBuffer instead */\nexport const toUint8ArrayOptional = (value?: DataLike, padLength?: number, base?: number): Uint8Array | undefined => {\n return value ? toUint8Array(value, padLength, base) : undefined\n}\n\nexport function toUint8Array(value: undefined, padLength?: number, base?: number): undefined\nexport function toUint8Array(value: DataLike, padLength?: number, base?: number): Uint8Array\nexport function toUint8Array(value: DataLike | undefined, padLength?: number, base?: number): Uint8Array | undefined\nexport function toUint8Array(value?: DataLike, padLength?: number, base?: number): Uint8Array | undefined {\n if (value === undefined) return undefined\n\n let result: Uint8Array | undefined =\n ifTypeOf<string, Uint8Array>('string', value as string, (value) => stringToUint8Array(value, base)) ?? (value as Uint8Array)\n\n if (result === undefined) {\n throw Error(`toUint8Array - Unknown type: ${typeof value}`)\n }\n\n if (padLength && result.length < padLength) {\n result = new Uint8Array([...new Uint8Array(padLength - result.length), ...result])\n assertEx(result?.length <= padLength, 'Resulting length is greater than padLength')\n }\n\n return result\n}\n","import { Logger } from '@xylabs/logger'\nimport { AnyObject } from '@xyo-network/object'\n\nexport type BaseParamsFields = {\n logger?: Logger\n}\n\nexport type BaseParams<TAdditionalParams extends AnyObject | void = void> = TAdditionalParams extends AnyObject\n ? BaseParamsFields & TAdditionalParams\n : BaseParamsFields\n\nexport abstract class Base<TParams extends BaseParams = BaseParams> {\n static defaultLogger?: Logger\n\n constructor(readonly params: TParams) {\n params.logger?.debug(`Base constructed [${Object(this).name}]`)\n }\n\n protected get logger() {\n return this.params?.logger ?? Base.defaultLogger ?? console\n }\n}\n","const dumpErrors = (errors: Error[]) => {\n errors.forEach((error) => {\n console.log(error, null, 2)\n })\n}\n\nexport { dumpErrors }\n","export const isBrowser = () => {\n return typeof process === 'undefined'\n}\n","import { v4 } from 'uuid'\n\nexport const uuid = () => {\n try {\n return v4()\n } catch {\n //generally if no crypto library support\n const bytes: number[] = []\n for (let i = 0; i < 16; i++) {\n bytes.push(Math.floor(Math.random() * 256))\n }\n console.log(`bytes: ${JSON.stringify(bytes)}`)\n return `${bytes[0].toString(16)}${bytes[1].toString(16)}${bytes[2].toString(16)}${bytes[3].toString(16)}-${bytes[4].toString(\n 16,\n )}${bytes[5].toString(16)}-${bytes[6].toString(16)}${bytes[7].toString(16)}-${bytes[8].toString(16)}${bytes[9].toString(16)}-${bytes[10].toString(\n 16,\n )}${bytes[11].toString(16)}${bytes[12].toString(16)}${bytes[13].toString(16)}${bytes[14].toString(16)}${bytes[15].toString(16)}`\n }\n}\n","import { Promisable } from '@xylabs/promise'\nimport { AnyObject, ObjectWrapper } from '@xyo-network/object'\n\nexport interface Validator<T extends AnyObject = AnyObject> {\n validate(payload: T): Promisable<Error[]>\n}\n\nexport abstract class ValidatorBase<T extends AnyObject = AnyObject> extends ObjectWrapper<T> implements Validator<T> {\n abstract validate(payload: T): Promisable<Error[]>\n}\n","export * from './Data'\nexport * from './lib'\nexport * from '@xyo-network/address'\nexport * from '@xyo-network/hash'\nexport * from '@xyo-network/object'\nexport * from '@xyo-network/wasm'\n"],"mappings":"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","names":["base16","base58","assertEx","value","base58","assertEx","base16"]}
package/package.json CHANGED
@@ -11,15 +11,16 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "@scure/base": "^1.1.3",
14
- "@xylabs/assert": "^2.13.10",
15
- "@xylabs/hex": "^2.13.10",
16
- "@xylabs/logger": "^2.13.10",
17
- "@xylabs/promise": "^2.13.10",
18
- "@xyo-network/address": "~2.82.0-rc.1",
19
- "@xyo-network/hash": "~2.82.0-rc.1",
20
- "@xyo-network/object": "~2.82.0-rc.1",
21
- "@xyo-network/wasm": "~2.82.0-rc.1",
22
- "keccak256": "^1.0.6",
14
+ "@xylabs/arraybuffer": "^2.13.20",
15
+ "@xylabs/assert": "^2.13.20",
16
+ "@xylabs/logger": "^2.13.20",
17
+ "@xylabs/promise": "^2.13.20",
18
+ "@xyo-network/address": "~2.82.0",
19
+ "@xyo-network/hash": "~2.82.0",
20
+ "@xyo-network/object": "~2.82.0",
21
+ "@xyo-network/typeof": "~2.82.0",
22
+ "@xyo-network/wasm": "~2.82.0",
23
+ "ethers": "^6.9.0",
23
24
  "uuid": "^9.0.1"
24
25
  },
25
26
  "description": "Primary SDK for using XYO Protocol 2.0",
@@ -68,6 +69,5 @@
68
69
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
69
70
  },
70
71
  "sideEffects": false,
71
- "version": "2.82.0-rc.1",
72
- "stableVersion": "2.81.7"
72
+ "version": "2.82.0"
73
73
  }
@@ -7,7 +7,7 @@ export abstract class AbstractData {
7
7
 
8
8
  abstract get hex(): string
9
9
 
10
- abstract get keccak256(): Buffer
10
+ abstract get keccak256(): ArrayBuffer
11
11
 
12
12
  static is(value: unknown): value is AbstractData {
13
13
  return value instanceof AbstractData
package/src/Data/Data.ts CHANGED
@@ -1,12 +1,12 @@
1
1
  /* eslint-disable import/no-deprecated */
2
2
  import { base16, base58 } from '@scure/base'
3
+ import { toArrayBuffer } from '@xylabs/arraybuffer'
3
4
  import { assertEx } from '@xylabs/assert'
4
- import { toHex } from '@xylabs/hex'
5
- import { toUint8Array } from '@xyo-network/hash'
6
- import keccak256 from 'keccak256'
5
+ import { keccak256 } from 'ethers'
7
6
 
8
7
  import { AbstractData } from './AbstractData'
9
8
  import { DataLike } from './DataLike'
9
+ import { toUint8ArrayOptional } from './toUint8Array'
10
10
 
11
11
  export class Data extends AbstractData {
12
12
  private _bytes?: ArrayBuffer
@@ -16,7 +16,7 @@ export class Data extends AbstractData {
16
16
  constructor(length: number, bytes: string, base?: number)
17
17
  constructor(length: number, bytes?: DataLike, base?: number) {
18
18
  super()
19
- this._bytes = toUint8Array(bytes, length, base)
19
+ this._bytes = toUint8ArrayOptional(bytes, length, base)
20
20
  this._length = length
21
21
  }
22
22
 
@@ -36,7 +36,7 @@ export class Data extends AbstractData {
36
36
 
37
37
  get keccak256() {
38
38
  this.checkLength()
39
- return Buffer.from(keccak256(`0x${toHex(this.bytes)}`))
39
+ return toArrayBuffer(keccak256(new Uint8Array(this.bytes)))
40
40
  }
41
41
 
42
42
  static from(data: DataLike | undefined) {
package/src/Data/index.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from './AbstractData'
2
2
  export * from './Data'
3
3
  export * from './DataLike'
4
+ export * from './toUint8Array'
@@ -0,0 +1,42 @@
1
+ import { base16, base58 } from '@scure/base'
2
+ import { assertEx } from '@xylabs/assert'
3
+ import { ifTypeOf } from '@xyo-network/typeof'
4
+
5
+ import { DataLike } from './DataLike'
6
+
7
+ const stringToUint8Array = (value: string, base = 16) => {
8
+ switch (base) {
9
+ case 16:
10
+ return base16.decode((value.startsWith('0x') ? value.slice(2) : value).toUpperCase())
11
+ case 58:
12
+ return base58.decode(value)
13
+ default:
14
+ throw Error(`Unsupported base [${base}]`)
15
+ }
16
+ }
17
+
18
+ /** @deprecated use ArrayBuffer instead */
19
+ export const toUint8ArrayOptional = (value?: DataLike, padLength?: number, base?: number): Uint8Array | undefined => {
20
+ return value ? toUint8Array(value, padLength, base) : undefined
21
+ }
22
+
23
+ export function toUint8Array(value: undefined, padLength?: number, base?: number): undefined
24
+ export function toUint8Array(value: DataLike, padLength?: number, base?: number): Uint8Array
25
+ export function toUint8Array(value: DataLike | undefined, padLength?: number, base?: number): Uint8Array | undefined
26
+ export function toUint8Array(value?: DataLike, padLength?: number, base?: number): Uint8Array | undefined {
27
+ if (value === undefined) return undefined
28
+
29
+ let result: Uint8Array | undefined =
30
+ ifTypeOf<string, Uint8Array>('string', value as string, (value) => stringToUint8Array(value, base)) ?? (value as Uint8Array)
31
+
32
+ if (result === undefined) {
33
+ throw Error(`toUint8Array - Unknown type: ${typeof value}`)
34
+ }
35
+
36
+ if (padLength && result.length < padLength) {
37
+ result = new Uint8Array([...new Uint8Array(padLength - result.length), ...result])
38
+ assertEx(result?.length <= padLength, 'Resulting length is greater than padLength')
39
+ }
40
+
41
+ return result
42
+ }