@xyo-network/data 2.83.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 (51) hide show
  1. package/LICENSE +840 -0
  2. package/README.md +15 -0
  3. package/dist/browser/AbstractData.d.cts +8 -0
  4. package/dist/browser/AbstractData.d.cts.map +1 -0
  5. package/dist/browser/AbstractData.d.mts +8 -0
  6. package/dist/browser/AbstractData.d.mts.map +1 -0
  7. package/dist/browser/AbstractData.d.ts +8 -0
  8. package/dist/browser/AbstractData.d.ts.map +1 -0
  9. package/dist/browser/Data.d.cts +15 -0
  10. package/dist/browser/Data.d.cts.map +1 -0
  11. package/dist/browser/Data.d.mts +15 -0
  12. package/dist/browser/Data.d.mts.map +1 -0
  13. package/dist/browser/Data.d.ts +15 -0
  14. package/dist/browser/Data.d.ts.map +1 -0
  15. package/dist/browser/index.cjs +82 -0
  16. package/dist/browser/index.cjs.map +1 -0
  17. package/dist/browser/index.d.cts +3 -0
  18. package/dist/browser/index.d.cts.map +1 -0
  19. package/dist/browser/index.d.mts +3 -0
  20. package/dist/browser/index.d.mts.map +1 -0
  21. package/dist/browser/index.d.ts +3 -0
  22. package/dist/browser/index.d.ts.map +1 -0
  23. package/dist/browser/index.js +59 -0
  24. package/dist/browser/index.js.map +1 -0
  25. package/dist/node/AbstractData.d.cts +8 -0
  26. package/dist/node/AbstractData.d.cts.map +1 -0
  27. package/dist/node/AbstractData.d.mts +8 -0
  28. package/dist/node/AbstractData.d.mts.map +1 -0
  29. package/dist/node/AbstractData.d.ts +8 -0
  30. package/dist/node/AbstractData.d.ts.map +1 -0
  31. package/dist/node/Data.d.cts +15 -0
  32. package/dist/node/Data.d.cts.map +1 -0
  33. package/dist/node/Data.d.mts +15 -0
  34. package/dist/node/Data.d.mts.map +1 -0
  35. package/dist/node/Data.d.ts +15 -0
  36. package/dist/node/Data.d.ts.map +1 -0
  37. package/dist/node/index.cjs +87 -0
  38. package/dist/node/index.cjs.map +1 -0
  39. package/dist/node/index.d.cts +3 -0
  40. package/dist/node/index.d.cts.map +1 -0
  41. package/dist/node/index.d.mts +3 -0
  42. package/dist/node/index.d.mts.map +1 -0
  43. package/dist/node/index.d.ts +3 -0
  44. package/dist/node/index.d.ts.map +1 -0
  45. package/dist/node/index.js +59 -0
  46. package/dist/node/index.js.map +1 -0
  47. package/package.json +64 -0
  48. package/src/AbstractData.ts +15 -0
  49. package/src/Data.ts +57 -0
  50. package/src/index.ts +2 -0
  51. package/typedoc.json +5 -0
package/package.json ADDED
@@ -0,0 +1,64 @@
1
+ {
2
+ "name": "@xyo-network/data",
3
+ "author": {
4
+ "email": "support@xyo.network",
5
+ "name": "XYO Development Team",
6
+ "url": "https://xyo.network"
7
+ },
8
+ "bugs": {
9
+ "email": "support@xyo.network",
10
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
11
+ },
12
+ "description": "Primary SDK for using XYO Protocol 2.0",
13
+ "dependencies": {
14
+ "@scure/base": "^1.1.3",
15
+ "@xylabs/arraybuffer": "^2.13.20",
16
+ "@xylabs/assert": "^2.13.20",
17
+ "ethers": "^6.9.0"
18
+ },
19
+ "devDependencies": {
20
+ "@xylabs/ts-scripts-yarn3": "^3.2.10",
21
+ "@xylabs/tsconfig": "^3.2.10",
22
+ "typescript": "^5.3.2"
23
+ },
24
+ "exports": {
25
+ ".": {
26
+ "browser": {
27
+ "require": {
28
+ "types": "./dist/browser/index.d.cts",
29
+ "default": "./dist/browser/index.cjs"
30
+ },
31
+ "import": {
32
+ "types": "./dist/browser/index.d.mts",
33
+ "default": "./dist/browser/index.js"
34
+ }
35
+ },
36
+ "node": {
37
+ "require": {
38
+ "types": "./dist/node/index.d.cts",
39
+ "default": "./dist/node/index.cjs"
40
+ },
41
+ "import": {
42
+ "types": "./dist/node/index.d.mts",
43
+ "default": "./dist/node/index.js"
44
+ }
45
+ }
46
+ },
47
+ "./package.json": "./package.json"
48
+ },
49
+ "main": "dist/node/index.cjs",
50
+ "module": "dist/node/index.js",
51
+ "types": "dist/node/index.d.mts",
52
+ "type": "module",
53
+ "homepage": "https://xyo.network",
54
+ "license": "LGPL-3.0-or-later",
55
+ "publishConfig": {
56
+ "access": "public"
57
+ },
58
+ "repository": {
59
+ "type": "git",
60
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
61
+ },
62
+ "sideEffects": false,
63
+ "version": "2.83.0"
64
+ }
@@ -0,0 +1,15 @@
1
+ export abstract class AbstractData {
2
+ get length() {
3
+ return this.bytes.byteLength
4
+ }
5
+
6
+ abstract get bytes(): ArrayBuffer
7
+
8
+ abstract get hex(): string
9
+
10
+ abstract get keccak256(): ArrayBuffer
11
+
12
+ static is(value: unknown): value is AbstractData {
13
+ return value instanceof AbstractData
14
+ }
15
+ }
package/src/Data.ts ADDED
@@ -0,0 +1,57 @@
1
+ /* eslint-disable import/no-deprecated */
2
+ import { base16, base58 } from '@scure/base'
3
+ import { toArrayBuffer, toUint8Array } from '@xylabs/arraybuffer'
4
+ import { assertEx } from '@xylabs/assert'
5
+ import { keccak256 } from 'ethers'
6
+
7
+ import { AbstractData } from './AbstractData'
8
+
9
+ export class Data extends AbstractData {
10
+ private _bytes?: ArrayBuffer
11
+ private _length: number
12
+
13
+ constructor(length: number, bytes?: string | ArrayBuffer)
14
+ constructor(length: number, bytes: string, base?: number)
15
+ constructor(length: number, bytes?: string | ArrayBuffer, base?: number) {
16
+ super()
17
+ this._bytes = toUint8Array(bytes, length, base)
18
+ this._length = length
19
+ }
20
+
21
+ get base58() {
22
+ this.checkLength()
23
+ return base58.encode(new Uint8Array(this.bytes))
24
+ }
25
+
26
+ get bytes() {
27
+ return assertEx(this._bytes, 'Data uninitialized')
28
+ }
29
+
30
+ get hex() {
31
+ this.checkLength()
32
+ return base16.encode(new Uint8Array(this.bytes)).toLowerCase()
33
+ }
34
+
35
+ get keccak256() {
36
+ this.checkLength()
37
+ return toArrayBuffer(keccak256(new Uint8Array(this.bytes)))
38
+ }
39
+
40
+ static from(data: string | ArrayBuffer | undefined) {
41
+ return data ? new Data(Data.lengthOf(data), data) : undefined
42
+ }
43
+
44
+ static lengthOf(data: string | ArrayBuffer): number {
45
+ if (typeof data === 'string') {
46
+ return data.length / 2
47
+ } else if (data instanceof AbstractData) {
48
+ return data.length
49
+ } else {
50
+ return typeof data.byteLength === 'function' ? data.byteLength : data.byteLength
51
+ }
52
+ }
53
+
54
+ private checkLength() {
55
+ assertEx(this.bytes.byteLength === this._length, `Length Mismatch: ${this.bytes.byteLength} !== ${this._length}`)
56
+ }
57
+ }
package/src/index.ts ADDED
@@ -0,0 +1,2 @@
1
+ export * from './AbstractData'
2
+ export * from './Data'
package/typedoc.json ADDED
@@ -0,0 +1,5 @@
1
+ {
2
+ "$schema": "https://typedoc.org/schema.json",
3
+ "entryPoints": ["./src/index.ts"],
4
+ "tsconfig": "./tsconfig.typedoc.json"
5
+ }