@xyo-network/account-model 6.0.4 → 6.0.6

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 (37) hide show
  1. package/dist/browser/Account.d.ts +4 -3
  2. package/dist/browser/Account.d.ts.map +1 -1
  3. package/dist/browser/Jwt/types.d.ts +4 -6
  4. package/dist/browser/Jwt/types.d.ts.map +1 -1
  5. package/dist/browser/addressTo20Bytes.d.ts +2 -0
  6. package/dist/browser/addressTo20Bytes.d.ts.map +1 -0
  7. package/dist/browser/index.d.ts +1 -1
  8. package/dist/browser/index.d.ts.map +1 -1
  9. package/dist/browser/index.mjs +10 -24
  10. package/dist/browser/index.mjs.map +3 -3
  11. package/dist/neutral/Account.d.ts +4 -3
  12. package/dist/neutral/Account.d.ts.map +1 -1
  13. package/dist/neutral/Jwt/types.d.ts +4 -6
  14. package/dist/neutral/Jwt/types.d.ts.map +1 -1
  15. package/dist/neutral/addressTo20Bytes.d.ts +2 -0
  16. package/dist/neutral/addressTo20Bytes.d.ts.map +1 -0
  17. package/dist/neutral/index.d.ts +1 -1
  18. package/dist/neutral/index.d.ts.map +1 -1
  19. package/dist/neutral/index.mjs +10 -24
  20. package/dist/neutral/index.mjs.map +3 -3
  21. package/dist/node/Account.d.ts +4 -3
  22. package/dist/node/Account.d.ts.map +1 -1
  23. package/dist/node/Jwt/types.d.ts +4 -6
  24. package/dist/node/Jwt/types.d.ts.map +1 -1
  25. package/dist/node/addressTo20Bytes.d.ts +2 -0
  26. package/dist/node/addressTo20Bytes.d.ts.map +1 -0
  27. package/dist/node/index.d.ts +1 -1
  28. package/dist/node/index.d.ts.map +1 -1
  29. package/dist/node/index.mjs +10 -24
  30. package/dist/node/index.mjs.map +3 -3
  31. package/package.json +10 -11
  32. package/dist/browser/XyoAddress.d.ts +0 -12
  33. package/dist/browser/XyoAddress.d.ts.map +0 -1
  34. package/dist/neutral/XyoAddress.d.ts +0 -12
  35. package/dist/neutral/XyoAddress.d.ts.map +0 -1
  36. package/dist/node/XyoAddress.d.ts +0 -12
  37. package/dist/node/XyoAddress.d.ts.map +0 -1
@@ -1,4 +1,5 @@
1
- import type { Address, Hash } from '@xylabs/sdk-js';
1
+ import type { Hash } from '@xylabs/sdk-js';
2
+ import type { XyoAddress } from '@xyo-network/address';
2
3
  import type { PrivateKeyInstance, PublicKeyInstance } from '@xyo-network/key-model';
3
4
  import type { PreviousHashStore } from '@xyo-network/previous-hash-store-model';
4
5
  import type { AccountAlgorithm } from './Algorithm.ts';
@@ -24,7 +25,7 @@ export declare const isPrivateKeyInitializationConfig: (value: unknown) => value
24
25
  export declare const isMnemonicInitializationConfig: (value: unknown) => value is MnemonicInitializationConfig;
25
26
  export declare const isInitializationConfig: (value: unknown) => value is InitializationConfig;
26
27
  export interface AccountInstance {
27
- readonly address: Address;
28
+ readonly address: XyoAddress;
28
29
  readonly addressBytes: ArrayBufferLike;
29
30
  readonly algorithm: AccountAlgorithm;
30
31
  previousHash: Hash | undefined;
@@ -35,7 +36,7 @@ export interface AccountInstance {
35
36
  signJwt: (options: SignJwtOptions) => Promise<SignJwtResult>;
36
37
  verify: (msg: ArrayBufferLike, signature: ArrayBufferLike) => Promise<boolean>;
37
38
  }
38
- export declare const isAccountInstance: (account: any) => account is AccountInstance;
39
+ export declare const isAccountInstance: (account: unknown) => account is AccountInstance;
39
40
  export interface AccountStatic<T extends AccountInstance = AccountInstance, C extends AccountConfig = AccountConfig> {
40
41
  previousHashStore?: PreviousHashStore;
41
42
  create(options?: C): Promise<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"Account.d.ts","sourceRoot":"","sources":["../../src/Account.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAEnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AACnF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAE/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAEnE,eAAO,MAAM,gBAAgB,qCAAqC,CAAA;AAElE,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAA;CACf;AACD,MAAM,WAAW,8BAA8B;IAC7C,UAAU,EAAE,eAAe,CAAA;CAC5B;AACD,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AACD,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,EAAE,eAAe,CAAA;CAC/B;AAED,MAAM,MAAM,oBAAoB,GAAG,0BAA0B,GAAG,8BAA8B,GAAG,4BAA4B,CAAA;AAE7H,MAAM,MAAM,aAAa,GAAG,oBAAoB,GAAG,cAAc,CAAA;AAEjE,eAAO,MAAM,4BAA4B,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,0BAKtE,CAAA;AAED,eAAO,MAAM,gCAAgC,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,8BAK1E,CAAA;AAED,eAAO,MAAM,8BAA8B,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,4BAOxE,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,oBAEhE,CAAA;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAA;IACtC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAA;IACpC,YAAY,EAAE,IAAI,GAAG,SAAS,CAAA;IAC9B,iBAAiB,EAAE,eAAe,GAAG,SAAS,CAAA;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAA;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAA;IACnC,IAAI,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,YAAY,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;IAClG,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,aAAa,CAAC,CAAA;IAC5D,MAAM,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,SAAS,EAAE,eAAe,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CAC/E;AAGD,eAAO,MAAM,iBAAiB,GAAI,SAAS,GAAG,KAAG,OAAO,IAAI,eAE3D,CAAA;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,EAAE,CAAC,SAAS,aAAa,GAAG,aAAa;IACjH,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IAC/B,cAAc,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IAChF,MAAM,IAAI,OAAO,CAAC,eAAe,CAAC,CAAA;CACnC"}
1
+ {"version":3,"file":"Account.d.ts","sourceRoot":"","sources":["../../src/Account.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAE1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AACnF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAE/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAEnE,eAAO,MAAM,gBAAgB,qCAAqC,CAAA;AAElE,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAA;CACf;AACD,MAAM,WAAW,8BAA8B;IAC7C,UAAU,EAAE,eAAe,CAAA;CAC5B;AACD,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AACD,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,EAAE,eAAe,CAAA;CAC/B;AAED,MAAM,MAAM,oBAAoB,GAAG,0BAA0B,GAAG,8BAA8B,GAAG,4BAA4B,CAAA;AAE7H,MAAM,MAAM,aAAa,GAAG,oBAAoB,GAAG,cAAc,CAAA;AAEjE,eAAO,MAAM,4BAA4B,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,0BAKtE,CAAA;AAED,eAAO,MAAM,gCAAgC,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,8BAK1E,CAAA;AAED,eAAO,MAAM,8BAA8B,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,4BAOxE,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,oBAEhE,CAAA;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAA;IAC5B,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAA;IACtC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAA;IACpC,YAAY,EAAE,IAAI,GAAG,SAAS,CAAA;IAC9B,iBAAiB,EAAE,eAAe,GAAG,SAAS,CAAA;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAA;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAA;IACnC,IAAI,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,YAAY,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;IAClG,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,aAAa,CAAC,CAAA;IAC5D,MAAM,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,SAAS,EAAE,eAAe,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CAC/E;AAED,eAAO,MAAM,iBAAiB,GAAI,SAAS,OAAO,KAAG,OAAO,IAAI,eAG/D,CAAA;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,EAAE,CAAC,SAAS,aAAa,GAAG,aAAa;IACjH,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IAC/B,cAAc,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IAChF,MAAM,IAAI,OAAO,CAAC,eAAe,CAAC,CAAA;CACnC"}
@@ -1,10 +1,8 @@
1
- import type { EnumValue } from '@xylabs/sdk-js';
2
- import type { JwtAlg, JwtSchema, JwtTyp } from './constants.ts';
3
1
  export interface JwtHeader {
4
- alg: EnumValue<typeof JwtAlg> | string;
2
+ alg: string;
5
3
  kid: string;
6
4
  pub: string;
7
- typ: EnumValue<typeof JwtTyp> | string;
5
+ typ: string;
8
6
  }
9
7
  export interface JwtClaims {
10
8
  aud: string;
@@ -16,7 +14,7 @@ export interface JwtClaims {
16
14
  }
17
15
  export interface JwtPayload extends JwtClaims {
18
16
  [key: string]: unknown;
19
- schema: EnumValue<typeof JwtSchema> | string;
17
+ schema: string;
20
18
  }
21
19
  export interface JwtParts {
22
20
  header: JwtHeader;
@@ -31,7 +29,7 @@ export interface SignJwtOptions {
31
29
  claims?: Record<string, unknown>;
32
30
  exp?: number;
33
31
  now?: number;
34
- schema?: EnumValue<typeof JwtSchema> | string;
32
+ schema?: string;
35
33
  ttl?: number;
36
34
  }
37
35
  export interface SignJwtResult {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/Jwt/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE/C,OAAO,KAAK,EACV,MAAM,EAAE,SAAS,EAAE,MAAM,EAC1B,MAAM,gBAAgB,CAAA;AAEvB,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,SAAS,CAAC,OAAO,MAAM,CAAC,GAAG,MAAM,CAAA;IACtC,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,SAAS,CAAC,OAAO,MAAM,CAAC,GAAG,MAAM,CAAA;CACvC;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,UAAW,SAAQ,SAAS;IAC3C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;IACtB,MAAM,EAAE,SAAS,CAAC,OAAO,SAAS,CAAC,GAAG,MAAM,CAAA;CAC7C;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,SAAS,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,UAAU,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,UAAU,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,SAAS,CAAC,OAAO,SAAS,CAAC,GAAG,MAAM,CAAA;IAC7C,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,SAAS,CAAA;IACjB,OAAO,EAAE,UAAU,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,SAAS,CAAA;IACjB,EAAE,EAAE,IAAI,CAAA;IACR,OAAO,EAAE,UAAU,CAAA;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,EAAE,EAAE,KAAK,CAAA;IACT,OAAO,CAAC,EAAE,UAAU,CAAA;IACpB,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG,gBAAgB,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/Jwt/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,UAAW,SAAQ,SAAS;IAC3C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,SAAS,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,UAAU,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,UAAU,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,SAAS,CAAA;IACjB,OAAO,EAAE,UAAU,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,SAAS,CAAA;IACjB,EAAE,EAAE,IAAI,CAAA;IACR,OAAO,EAAE,UAAU,CAAA;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,EAAE,EAAE,KAAK,CAAA;IACT,OAAO,CAAC,EAAE,UAAU,CAAA;IACpB,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG,gBAAgB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare function addressTo20Bytes(address: string): ArrayBufferLike;
2
+ //# sourceMappingURL=addressTo20Bytes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addressTo20Bytes.d.ts","sourceRoot":"","sources":["../../src/addressTo20Bytes.ts"],"names":[],"mappings":"AAIA,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAEjE"}
@@ -1,6 +1,6 @@
1
1
  export * from './Account.ts';
2
+ export * from './addressTo20Bytes.ts';
2
3
  export * from './Algorithm.ts';
3
4
  export * from './Jwt/index.ts';
4
5
  export * from './VerifierRegistry.ts';
5
- export * from './XyoAddress.ts';
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA"}
@@ -23,9 +23,13 @@ var isInitializationConfig = (value) => {
23
23
  return isPhraseInitializationConfig(value) || isPrivateKeyInitializationConfig(value) || isMnemonicInitializationConfig(value);
24
24
  };
25
25
  var isAccountInstance = (account) => {
26
- return typeof account === "object" && typeof account["address"] === "string";
26
+ if (typeof account !== "object" || account === null) return false;
27
+ return typeof account.address === "string";
27
28
  };
28
29
 
30
+ // src/addressTo20Bytes.ts
31
+ import { toUint8Array } from "@xylabs/sdk-js";
32
+
29
33
  // src/Algorithm.ts
30
34
  var AccountAlgorithmPrefix = {
31
35
  "secp256k1": null,
@@ -47,6 +51,11 @@ function prefixForAlgorithm(algorithm) {
47
51
  return prefix === null ? "" : `${prefix}_`;
48
52
  }
49
53
 
54
+ // src/addressTo20Bytes.ts
55
+ function addressTo20Bytes(address) {
56
+ return toUint8Array(stripAddressPrefix(address), 20).buffer;
57
+ }
58
+
50
59
  // src/Jwt/constants.ts
51
60
  import { Enum } from "@xylabs/sdk-js";
52
61
  var JwtAlg = Enum({ ES256K: "ES256K" });
@@ -69,35 +78,13 @@ async function verifySignature(address, hash, signature) {
69
78
  }
70
79
  return await fn(address, hash, signature);
71
80
  }
72
-
73
- // src/XyoAddress.ts
74
- import {
75
- AddressZod,
76
- asAddress,
77
- isAddress,
78
- toUint8Array
79
- } from "@xylabs/sdk-js";
80
- var XyoAddressRegEx = /^(?:qr1_)?[0-9a-f]{40}$/;
81
- var XyoAddressZod = AddressZod;
82
- function isXyoAddress(value) {
83
- return isAddress(value);
84
- }
85
- function asXyoAddress(value) {
86
- return asAddress(value);
87
- }
88
- function addressTo20Bytes(address) {
89
- return toUint8Array(stripAddressPrefix(address), 20).buffer;
90
- }
91
81
  export {
92
82
  AccountAlgorithmPrefix,
93
83
  JwtAlg,
94
84
  JwtSchema,
95
85
  JwtTyp,
96
- XyoAddressRegEx,
97
- XyoAddressZod,
98
86
  addressTo20Bytes,
99
87
  algorithmFromAddress,
100
- asXyoAddress,
101
88
  ethMessagePrefix,
102
89
  getVerifier,
103
90
  isAccountInstance,
@@ -105,7 +92,6 @@ export {
105
92
  isMnemonicInitializationConfig,
106
93
  isPhraseInitializationConfig,
107
94
  isPrivateKeyInitializationConfig,
108
- isXyoAddress,
109
95
  prefixForAlgorithm,
110
96
  registerVerifier,
111
97
  stripAddressPrefix,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/Account.ts", "../../src/Algorithm.ts", "../../src/Jwt/constants.ts", "../../src/VerifierRegistry.ts", "../../src/XyoAddress.ts"],
4
- "sourcesContent": ["import type { Address, Hash } from '@xylabs/sdk-js'\nimport { isArrayBuffer } from '@xylabs/sdk-js'\nimport type { PrivateKeyInstance, PublicKeyInstance } from '@xyo-network/key-model'\nimport type { PreviousHashStore } from '@xyo-network/previous-hash-store-model'\n\nimport type { AccountAlgorithm } from './Algorithm.ts'\nimport type { SignJwtOptions, SignJwtResult } from './Jwt/types.ts'\n\nexport const ethMessagePrefix = '\\u0019Ethereum Signed Message:\\n'\n\nexport interface PhraseInitializationConfig {\n phrase: string\n}\nexport interface PrivateKeyInitializationConfig {\n privateKey: ArrayBufferLike\n}\nexport interface MnemonicInitializationConfig {\n mnemonic: string\n path?: string\n}\nexport interface AccountOptions {\n previousHash?: ArrayBufferLike\n}\n\nexport type InitializationConfig = PhraseInitializationConfig | PrivateKeyInitializationConfig | MnemonicInitializationConfig\n\nexport type AccountConfig = InitializationConfig & AccountOptions\n\nexport const isPhraseInitializationConfig = (value: unknown): value is PhraseInitializationConfig => {\n if (typeof value === 'object' && value !== null) {\n return typeof (value as PhraseInitializationConfig).phrase === 'string'\n }\n return false\n}\n\nexport const isPrivateKeyInitializationConfig = (value: unknown): value is PrivateKeyInitializationConfig => {\n if (typeof value === 'object' && value !== null) {\n return isArrayBuffer((value as PrivateKeyInitializationConfig).privateKey)\n }\n return false\n}\n\nexport const isMnemonicInitializationConfig = (value: unknown): value is MnemonicInitializationConfig => {\n if (typeof value === 'object' && value !== null) {\n return (\n typeof (value as MnemonicInitializationConfig).mnemonic === 'string' && typeof ((value as MnemonicInitializationConfig).path ?? '') === 'string'\n )\n }\n return false\n}\n\nexport const isInitializationConfig = (value: unknown): value is InitializationConfig => {\n return isPhraseInitializationConfig(value) || isPrivateKeyInitializationConfig(value) || isMnemonicInitializationConfig(value)\n}\n\nexport interface AccountInstance {\n readonly address: Address\n readonly addressBytes: ArrayBufferLike\n readonly algorithm: AccountAlgorithm\n previousHash: Hash | undefined\n previousHashBytes: ArrayBufferLike | undefined\n readonly private?: PrivateKeyInstance\n readonly public?: PublicKeyInstance\n sign: (hash: ArrayBufferLike, previousHash?: ArrayBufferLike) => Promise<[ArrayBufferLike, Hash?]>\n signJwt: (options: SignJwtOptions) => Promise<SignJwtResult>\n verify: (msg: ArrayBufferLike, signature: ArrayBufferLike) => Promise<boolean>\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const isAccountInstance = (account: any): account is AccountInstance => {\n return typeof account === 'object' && typeof account['address'] === 'string'\n}\n\nexport interface AccountStatic<T extends AccountInstance = AccountInstance, C extends AccountConfig = AccountConfig> {\n previousHashStore?: PreviousHashStore\n create(options?: C): Promise<T>\n fromPrivateKey(key: ArrayBufferLike | bigint | string): Promise<AccountInstance>\n random(): Promise<AccountInstance>\n}\n", "export type AccountAlgorithm = 'secp256k1' | 'ml-dsa-65'\n\nexport const AccountAlgorithmPrefix = {\n 'secp256k1': null,\n 'ml-dsa-65': 'qr1',\n} as const satisfies Record<AccountAlgorithm, string | null>\n\nexport function algorithmFromAddress(address: string): AccountAlgorithm {\n const underscore = address.indexOf('_')\n // secp256k1 addresses are unprefixed bare 40-hex strings\n if (underscore === -1) return 'secp256k1'\n const prefix = address.slice(0, underscore)\n if (prefix === AccountAlgorithmPrefix['ml-dsa-65']) return 'ml-dsa-65'\n throw new Error(`Unknown address algorithm prefix [${prefix}]`)\n}\n\nexport function stripAddressPrefix(address: string): string {\n const underscore = address.indexOf('_')\n return underscore === -1 ? address : address.slice(underscore + 1)\n}\n\nexport function prefixForAlgorithm(algorithm: AccountAlgorithm): string {\n const prefix = AccountAlgorithmPrefix[algorithm]\n return prefix === null ? '' : `${prefix}_`\n}\n", "import { Enum } from '@xylabs/sdk-js'\n\nexport const JwtAlg = Enum({ ES256K: 'ES256K' } as const)\nexport type JwtAlg = Enum<typeof JwtAlg>\n\nexport const JwtTyp = Enum({ JWT: 'JWT' } as const)\nexport type JwtTyp = Enum<typeof JwtTyp>\n\nexport const JwtSchema = Enum({ Signin: 'network.xyo.auth.signin' } as const)\nexport type JwtSchema = Enum<typeof JwtSchema>\n", "import type { AccountAlgorithm } from './Algorithm.ts'\nimport { algorithmFromAddress } from './Algorithm.ts'\n\nexport type VerifySignatureFn = (address: string, hash: ArrayBufferLike, signature: ArrayBufferLike) => Promise<boolean>\n\nconst registry: Partial<Record<AccountAlgorithm, VerifySignatureFn>> = {}\n\nexport function registerVerifier(algorithm: AccountAlgorithm, fn: VerifySignatureFn): void {\n registry[algorithm] = fn\n}\n\nexport function getVerifier(algorithm: AccountAlgorithm): VerifySignatureFn | undefined {\n return registry[algorithm]\n}\n\nexport async function verifySignature(address: string, hash: ArrayBufferLike, signature: ArrayBufferLike): Promise<boolean> {\n const algorithm = algorithmFromAddress(address)\n const fn = registry[algorithm]\n if (!fn) {\n throw new Error(`No verifier registered for algorithm [${algorithm}]. Did you import the account package?`)\n }\n return await fn(address, hash, signature)\n}\n", "import {\n AddressZod, asAddress, isAddress, toUint8Array,\n} from '@xylabs/sdk-js'\nimport type * as z from 'zod/mini'\n\nimport { stripAddressPrefix } from './Algorithm.ts'\n\nexport const XyoAddressRegEx = /^(?:qr1_)?[0-9a-f]{40}$/\n\nexport const XyoAddressZod = AddressZod\n\nexport type XyoAddress = z.infer<typeof XyoAddressZod>\n\nexport function isXyoAddress(value: unknown): value is XyoAddress {\n return isAddress(value)\n}\n\nexport function asXyoAddress(value: unknown): XyoAddress | undefined {\n return asAddress(value)\n}\n\nexport function addressTo20Bytes(address: string): ArrayBufferLike {\n return toUint8Array(stripAddressPrefix(address), 20).buffer\n}\n"],
5
- "mappings": ";AACA,SAAS,qBAAqB;AAOvB,IAAM,mBAAmB;AAoBzB,IAAM,+BAA+B,CAAC,UAAwD;AACnG,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAC/C,WAAO,OAAQ,MAAqC,WAAW;AAAA,EACjE;AACA,SAAO;AACT;AAEO,IAAM,mCAAmC,CAAC,UAA4D;AAC3G,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAC/C,WAAO,cAAe,MAAyC,UAAU;AAAA,EAC3E;AACA,SAAO;AACT;AAEO,IAAM,iCAAiC,CAAC,UAA0D;AACvG,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAC/C,WACE,OAAQ,MAAuC,aAAa,YAAY,QAAS,MAAuC,QAAQ,QAAQ;AAAA,EAE5I;AACA,SAAO;AACT;AAEO,IAAM,yBAAyB,CAAC,UAAkD;AACvF,SAAO,6BAA6B,KAAK,KAAK,iCAAiC,KAAK,KAAK,+BAA+B,KAAK;AAC/H;AAgBO,IAAM,oBAAoB,CAAC,YAA6C;AAC7E,SAAO,OAAO,YAAY,YAAY,OAAO,QAAQ,SAAS,MAAM;AACtE;;;ACrEO,IAAM,yBAAyB;AAAA,EACpC,aAAa;AAAA,EACb,aAAa;AACf;AAEO,SAAS,qBAAqB,SAAmC;AACtE,QAAM,aAAa,QAAQ,QAAQ,GAAG;AAEtC,MAAI,eAAe,GAAI,QAAO;AAC9B,QAAM,SAAS,QAAQ,MAAM,GAAG,UAAU;AAC1C,MAAI,WAAW,uBAAuB,WAAW,EAAG,QAAO;AAC3D,QAAM,IAAI,MAAM,qCAAqC,MAAM,GAAG;AAChE;AAEO,SAAS,mBAAmB,SAAyB;AAC1D,QAAM,aAAa,QAAQ,QAAQ,GAAG;AACtC,SAAO,eAAe,KAAK,UAAU,QAAQ,MAAM,aAAa,CAAC;AACnE;AAEO,SAAS,mBAAmB,WAAqC;AACtE,QAAM,SAAS,uBAAuB,SAAS;AAC/C,SAAO,WAAW,OAAO,KAAK,GAAG,MAAM;AACzC;;;ACxBA,SAAS,YAAY;AAEd,IAAM,SAAS,KAAK,EAAE,QAAQ,SAAS,CAAU;AAGjD,IAAM,SAAS,KAAK,EAAE,KAAK,MAAM,CAAU;AAG3C,IAAM,YAAY,KAAK,EAAE,QAAQ,0BAA0B,CAAU;;;ACH5E,IAAM,WAAiE,CAAC;AAEjE,SAAS,iBAAiB,WAA6B,IAA6B;AACzF,WAAS,SAAS,IAAI;AACxB;AAEO,SAAS,YAAY,WAA4D;AACtF,SAAO,SAAS,SAAS;AAC3B;AAEA,eAAsB,gBAAgB,SAAiB,MAAuB,WAA8C;AAC1H,QAAM,YAAY,qBAAqB,OAAO;AAC9C,QAAM,KAAK,SAAS,SAAS;AAC7B,MAAI,CAAC,IAAI;AACP,UAAM,IAAI,MAAM,yCAAyC,SAAS,wCAAwC;AAAA,EAC5G;AACA,SAAO,MAAM,GAAG,SAAS,MAAM,SAAS;AAC1C;;;ACtBA;AAAA,EACE;AAAA,EAAY;AAAA,EAAW;AAAA,EAAW;AAAA,OAC7B;AAKA,IAAM,kBAAkB;AAExB,IAAM,gBAAgB;AAItB,SAAS,aAAa,OAAqC;AAChE,SAAO,UAAU,KAAK;AACxB;AAEO,SAAS,aAAa,OAAwC;AACnE,SAAO,UAAU,KAAK;AACxB;AAEO,SAAS,iBAAiB,SAAkC;AACjE,SAAO,aAAa,mBAAmB,OAAO,GAAG,EAAE,EAAE;AACvD;",
3
+ "sources": ["../../src/Account.ts", "../../src/addressTo20Bytes.ts", "../../src/Algorithm.ts", "../../src/Jwt/constants.ts", "../../src/VerifierRegistry.ts"],
4
+ "sourcesContent": ["import type { Hash } from '@xylabs/sdk-js'\nimport { isArrayBuffer } from '@xylabs/sdk-js'\nimport type { XyoAddress } from '@xyo-network/address'\nimport type { PrivateKeyInstance, PublicKeyInstance } from '@xyo-network/key-model'\nimport type { PreviousHashStore } from '@xyo-network/previous-hash-store-model'\n\nimport type { AccountAlgorithm } from './Algorithm.ts'\nimport type { SignJwtOptions, SignJwtResult } from './Jwt/types.ts'\n\nexport const ethMessagePrefix = '\\u0019Ethereum Signed Message:\\n'\n\nexport interface PhraseInitializationConfig {\n phrase: string\n}\nexport interface PrivateKeyInitializationConfig {\n privateKey: ArrayBufferLike\n}\nexport interface MnemonicInitializationConfig {\n mnemonic: string\n path?: string\n}\nexport interface AccountOptions {\n previousHash?: ArrayBufferLike\n}\n\nexport type InitializationConfig = PhraseInitializationConfig | PrivateKeyInitializationConfig | MnemonicInitializationConfig\n\nexport type AccountConfig = InitializationConfig & AccountOptions\n\nexport const isPhraseInitializationConfig = (value: unknown): value is PhraseInitializationConfig => {\n if (typeof value === 'object' && value !== null) {\n return typeof (value as PhraseInitializationConfig).phrase === 'string'\n }\n return false\n}\n\nexport const isPrivateKeyInitializationConfig = (value: unknown): value is PrivateKeyInitializationConfig => {\n if (typeof value === 'object' && value !== null) {\n return isArrayBuffer((value as PrivateKeyInitializationConfig).privateKey)\n }\n return false\n}\n\nexport const isMnemonicInitializationConfig = (value: unknown): value is MnemonicInitializationConfig => {\n if (typeof value === 'object' && value !== null) {\n return (\n typeof (value as MnemonicInitializationConfig).mnemonic === 'string' && typeof ((value as MnemonicInitializationConfig).path ?? '') === 'string'\n )\n }\n return false\n}\n\nexport const isInitializationConfig = (value: unknown): value is InitializationConfig => {\n return isPhraseInitializationConfig(value) || isPrivateKeyInitializationConfig(value) || isMnemonicInitializationConfig(value)\n}\n\nexport interface AccountInstance {\n readonly address: XyoAddress\n readonly addressBytes: ArrayBufferLike\n readonly algorithm: AccountAlgorithm\n previousHash: Hash | undefined\n previousHashBytes: ArrayBufferLike | undefined\n readonly private?: PrivateKeyInstance\n readonly public?: PublicKeyInstance\n sign: (hash: ArrayBufferLike, previousHash?: ArrayBufferLike) => Promise<[ArrayBufferLike, Hash?]>\n signJwt: (options: SignJwtOptions) => Promise<SignJwtResult>\n verify: (msg: ArrayBufferLike, signature: ArrayBufferLike) => Promise<boolean>\n}\n\nexport const isAccountInstance = (account: unknown): account is AccountInstance => {\n if (typeof account !== 'object' || account === null) return false\n return typeof (account as { address?: unknown }).address === 'string'\n}\n\nexport interface AccountStatic<T extends AccountInstance = AccountInstance, C extends AccountConfig = AccountConfig> {\n previousHashStore?: PreviousHashStore\n create(options?: C): Promise<T>\n fromPrivateKey(key: ArrayBufferLike | bigint | string): Promise<AccountInstance>\n random(): Promise<AccountInstance>\n}\n", "import { toUint8Array } from '@xylabs/sdk-js'\n\nimport { stripAddressPrefix } from './Algorithm.ts'\n\nexport function addressTo20Bytes(address: string): ArrayBufferLike {\n return toUint8Array(stripAddressPrefix(address), 20).buffer\n}\n", "export type AccountAlgorithm = 'secp256k1' | 'ml-dsa-65'\n\nexport const AccountAlgorithmPrefix = {\n 'secp256k1': null,\n 'ml-dsa-65': 'qr1',\n} as const satisfies Record<AccountAlgorithm, string | null>\n\nexport function algorithmFromAddress(address: string): AccountAlgorithm {\n const underscore = address.indexOf('_')\n // secp256k1 addresses are unprefixed bare 40-hex strings\n if (underscore === -1) return 'secp256k1'\n const prefix = address.slice(0, underscore)\n if (prefix === AccountAlgorithmPrefix['ml-dsa-65']) return 'ml-dsa-65'\n throw new Error(`Unknown address algorithm prefix [${prefix}]`)\n}\n\nexport function stripAddressPrefix(address: string): string {\n const underscore = address.indexOf('_')\n return underscore === -1 ? address : address.slice(underscore + 1)\n}\n\nexport function prefixForAlgorithm(algorithm: AccountAlgorithm): string {\n const prefix = AccountAlgorithmPrefix[algorithm]\n return prefix === null ? '' : `${prefix}_`\n}\n", "import { Enum } from '@xylabs/sdk-js'\n\nexport const JwtAlg = Enum({ ES256K: 'ES256K' } as const)\nexport type JwtAlg = Enum<typeof JwtAlg>\n\nexport const JwtTyp = Enum({ JWT: 'JWT' } as const)\nexport type JwtTyp = Enum<typeof JwtTyp>\n\nexport const JwtSchema = Enum({ Signin: 'network.xyo.auth.signin' } as const)\nexport type JwtSchema = Enum<typeof JwtSchema>\n", "import type { AccountAlgorithm } from './Algorithm.ts'\nimport { algorithmFromAddress } from './Algorithm.ts'\n\nexport type VerifySignatureFn = (address: string, hash: ArrayBufferLike, signature: ArrayBufferLike) => Promise<boolean>\n\nconst registry: Partial<Record<AccountAlgorithm, VerifySignatureFn>> = {}\n\nexport function registerVerifier(algorithm: AccountAlgorithm, fn: VerifySignatureFn): void {\n registry[algorithm] = fn\n}\n\nexport function getVerifier(algorithm: AccountAlgorithm): VerifySignatureFn | undefined {\n return registry[algorithm]\n}\n\nexport async function verifySignature(address: string, hash: ArrayBufferLike, signature: ArrayBufferLike): Promise<boolean> {\n const algorithm = algorithmFromAddress(address)\n const fn = registry[algorithm]\n if (!fn) {\n throw new Error(`No verifier registered for algorithm [${algorithm}]. Did you import the account package?`)\n }\n return await fn(address, hash, signature)\n}\n"],
5
+ "mappings": ";AACA,SAAS,qBAAqB;AAQvB,IAAM,mBAAmB;AAoBzB,IAAM,+BAA+B,CAAC,UAAwD;AACnG,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAC/C,WAAO,OAAQ,MAAqC,WAAW;AAAA,EACjE;AACA,SAAO;AACT;AAEO,IAAM,mCAAmC,CAAC,UAA4D;AAC3G,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAC/C,WAAO,cAAe,MAAyC,UAAU;AAAA,EAC3E;AACA,SAAO;AACT;AAEO,IAAM,iCAAiC,CAAC,UAA0D;AACvG,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAC/C,WACE,OAAQ,MAAuC,aAAa,YAAY,QAAS,MAAuC,QAAQ,QAAQ;AAAA,EAE5I;AACA,SAAO;AACT;AAEO,IAAM,yBAAyB,CAAC,UAAkD;AACvF,SAAO,6BAA6B,KAAK,KAAK,iCAAiC,KAAK,KAAK,+BAA+B,KAAK;AAC/H;AAeO,IAAM,oBAAoB,CAAC,YAAiD;AACjF,MAAI,OAAO,YAAY,YAAY,YAAY,KAAM,QAAO;AAC5D,SAAO,OAAQ,QAAkC,YAAY;AAC/D;;;ACxEA,SAAS,oBAAoB;;;ACEtB,IAAM,yBAAyB;AAAA,EACpC,aAAa;AAAA,EACb,aAAa;AACf;AAEO,SAAS,qBAAqB,SAAmC;AACtE,QAAM,aAAa,QAAQ,QAAQ,GAAG;AAEtC,MAAI,eAAe,GAAI,QAAO;AAC9B,QAAM,SAAS,QAAQ,MAAM,GAAG,UAAU;AAC1C,MAAI,WAAW,uBAAuB,WAAW,EAAG,QAAO;AAC3D,QAAM,IAAI,MAAM,qCAAqC,MAAM,GAAG;AAChE;AAEO,SAAS,mBAAmB,SAAyB;AAC1D,QAAM,aAAa,QAAQ,QAAQ,GAAG;AACtC,SAAO,eAAe,KAAK,UAAU,QAAQ,MAAM,aAAa,CAAC;AACnE;AAEO,SAAS,mBAAmB,WAAqC;AACtE,QAAM,SAAS,uBAAuB,SAAS;AAC/C,SAAO,WAAW,OAAO,KAAK,GAAG,MAAM;AACzC;;;ADpBO,SAAS,iBAAiB,SAAkC;AACjE,SAAO,aAAa,mBAAmB,OAAO,GAAG,EAAE,EAAE;AACvD;;;AENA,SAAS,YAAY;AAEd,IAAM,SAAS,KAAK,EAAE,QAAQ,SAAS,CAAU;AAGjD,IAAM,SAAS,KAAK,EAAE,KAAK,MAAM,CAAU;AAG3C,IAAM,YAAY,KAAK,EAAE,QAAQ,0BAA0B,CAAU;;;ACH5E,IAAM,WAAiE,CAAC;AAEjE,SAAS,iBAAiB,WAA6B,IAA6B;AACzF,WAAS,SAAS,IAAI;AACxB;AAEO,SAAS,YAAY,WAA4D;AACtF,SAAO,SAAS,SAAS;AAC3B;AAEA,eAAsB,gBAAgB,SAAiB,MAAuB,WAA8C;AAC1H,QAAM,YAAY,qBAAqB,OAAO;AAC9C,QAAM,KAAK,SAAS,SAAS;AAC7B,MAAI,CAAC,IAAI;AACP,UAAM,IAAI,MAAM,yCAAyC,SAAS,wCAAwC;AAAA,EAC5G;AACA,SAAO,MAAM,GAAG,SAAS,MAAM,SAAS;AAC1C;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,5 @@
1
- import type { Address, Hash } from '@xylabs/sdk-js';
1
+ import type { Hash } from '@xylabs/sdk-js';
2
+ import type { XyoAddress } from '@xyo-network/address';
2
3
  import type { PrivateKeyInstance, PublicKeyInstance } from '@xyo-network/key-model';
3
4
  import type { PreviousHashStore } from '@xyo-network/previous-hash-store-model';
4
5
  import type { AccountAlgorithm } from './Algorithm.ts';
@@ -24,7 +25,7 @@ export declare const isPrivateKeyInitializationConfig: (value: unknown) => value
24
25
  export declare const isMnemonicInitializationConfig: (value: unknown) => value is MnemonicInitializationConfig;
25
26
  export declare const isInitializationConfig: (value: unknown) => value is InitializationConfig;
26
27
  export interface AccountInstance {
27
- readonly address: Address;
28
+ readonly address: XyoAddress;
28
29
  readonly addressBytes: ArrayBufferLike;
29
30
  readonly algorithm: AccountAlgorithm;
30
31
  previousHash: Hash | undefined;
@@ -35,7 +36,7 @@ export interface AccountInstance {
35
36
  signJwt: (options: SignJwtOptions) => Promise<SignJwtResult>;
36
37
  verify: (msg: ArrayBufferLike, signature: ArrayBufferLike) => Promise<boolean>;
37
38
  }
38
- export declare const isAccountInstance: (account: any) => account is AccountInstance;
39
+ export declare const isAccountInstance: (account: unknown) => account is AccountInstance;
39
40
  export interface AccountStatic<T extends AccountInstance = AccountInstance, C extends AccountConfig = AccountConfig> {
40
41
  previousHashStore?: PreviousHashStore;
41
42
  create(options?: C): Promise<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"Account.d.ts","sourceRoot":"","sources":["../../src/Account.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAEnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AACnF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAE/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAEnE,eAAO,MAAM,gBAAgB,qCAAqC,CAAA;AAElE,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAA;CACf;AACD,MAAM,WAAW,8BAA8B;IAC7C,UAAU,EAAE,eAAe,CAAA;CAC5B;AACD,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AACD,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,EAAE,eAAe,CAAA;CAC/B;AAED,MAAM,MAAM,oBAAoB,GAAG,0BAA0B,GAAG,8BAA8B,GAAG,4BAA4B,CAAA;AAE7H,MAAM,MAAM,aAAa,GAAG,oBAAoB,GAAG,cAAc,CAAA;AAEjE,eAAO,MAAM,4BAA4B,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,0BAKtE,CAAA;AAED,eAAO,MAAM,gCAAgC,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,8BAK1E,CAAA;AAED,eAAO,MAAM,8BAA8B,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,4BAOxE,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,oBAEhE,CAAA;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAA;IACtC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAA;IACpC,YAAY,EAAE,IAAI,GAAG,SAAS,CAAA;IAC9B,iBAAiB,EAAE,eAAe,GAAG,SAAS,CAAA;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAA;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAA;IACnC,IAAI,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,YAAY,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;IAClG,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,aAAa,CAAC,CAAA;IAC5D,MAAM,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,SAAS,EAAE,eAAe,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CAC/E;AAGD,eAAO,MAAM,iBAAiB,GAAI,SAAS,GAAG,KAAG,OAAO,IAAI,eAE3D,CAAA;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,EAAE,CAAC,SAAS,aAAa,GAAG,aAAa;IACjH,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IAC/B,cAAc,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IAChF,MAAM,IAAI,OAAO,CAAC,eAAe,CAAC,CAAA;CACnC"}
1
+ {"version":3,"file":"Account.d.ts","sourceRoot":"","sources":["../../src/Account.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAE1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AACnF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAE/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAEnE,eAAO,MAAM,gBAAgB,qCAAqC,CAAA;AAElE,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAA;CACf;AACD,MAAM,WAAW,8BAA8B;IAC7C,UAAU,EAAE,eAAe,CAAA;CAC5B;AACD,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AACD,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,EAAE,eAAe,CAAA;CAC/B;AAED,MAAM,MAAM,oBAAoB,GAAG,0BAA0B,GAAG,8BAA8B,GAAG,4BAA4B,CAAA;AAE7H,MAAM,MAAM,aAAa,GAAG,oBAAoB,GAAG,cAAc,CAAA;AAEjE,eAAO,MAAM,4BAA4B,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,0BAKtE,CAAA;AAED,eAAO,MAAM,gCAAgC,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,8BAK1E,CAAA;AAED,eAAO,MAAM,8BAA8B,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,4BAOxE,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,oBAEhE,CAAA;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAA;IAC5B,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAA;IACtC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAA;IACpC,YAAY,EAAE,IAAI,GAAG,SAAS,CAAA;IAC9B,iBAAiB,EAAE,eAAe,GAAG,SAAS,CAAA;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAA;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAA;IACnC,IAAI,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,YAAY,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;IAClG,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,aAAa,CAAC,CAAA;IAC5D,MAAM,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,SAAS,EAAE,eAAe,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CAC/E;AAED,eAAO,MAAM,iBAAiB,GAAI,SAAS,OAAO,KAAG,OAAO,IAAI,eAG/D,CAAA;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,EAAE,CAAC,SAAS,aAAa,GAAG,aAAa;IACjH,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IAC/B,cAAc,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IAChF,MAAM,IAAI,OAAO,CAAC,eAAe,CAAC,CAAA;CACnC"}
@@ -1,10 +1,8 @@
1
- import type { EnumValue } from '@xylabs/sdk-js';
2
- import type { JwtAlg, JwtSchema, JwtTyp } from './constants.ts';
3
1
  export interface JwtHeader {
4
- alg: EnumValue<typeof JwtAlg> | string;
2
+ alg: string;
5
3
  kid: string;
6
4
  pub: string;
7
- typ: EnumValue<typeof JwtTyp> | string;
5
+ typ: string;
8
6
  }
9
7
  export interface JwtClaims {
10
8
  aud: string;
@@ -16,7 +14,7 @@ export interface JwtClaims {
16
14
  }
17
15
  export interface JwtPayload extends JwtClaims {
18
16
  [key: string]: unknown;
19
- schema: EnumValue<typeof JwtSchema> | string;
17
+ schema: string;
20
18
  }
21
19
  export interface JwtParts {
22
20
  header: JwtHeader;
@@ -31,7 +29,7 @@ export interface SignJwtOptions {
31
29
  claims?: Record<string, unknown>;
32
30
  exp?: number;
33
31
  now?: number;
34
- schema?: EnumValue<typeof JwtSchema> | string;
32
+ schema?: string;
35
33
  ttl?: number;
36
34
  }
37
35
  export interface SignJwtResult {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/Jwt/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE/C,OAAO,KAAK,EACV,MAAM,EAAE,SAAS,EAAE,MAAM,EAC1B,MAAM,gBAAgB,CAAA;AAEvB,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,SAAS,CAAC,OAAO,MAAM,CAAC,GAAG,MAAM,CAAA;IACtC,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,SAAS,CAAC,OAAO,MAAM,CAAC,GAAG,MAAM,CAAA;CACvC;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,UAAW,SAAQ,SAAS;IAC3C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;IACtB,MAAM,EAAE,SAAS,CAAC,OAAO,SAAS,CAAC,GAAG,MAAM,CAAA;CAC7C;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,SAAS,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,UAAU,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,UAAU,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,SAAS,CAAC,OAAO,SAAS,CAAC,GAAG,MAAM,CAAA;IAC7C,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,SAAS,CAAA;IACjB,OAAO,EAAE,UAAU,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,SAAS,CAAA;IACjB,EAAE,EAAE,IAAI,CAAA;IACR,OAAO,EAAE,UAAU,CAAA;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,EAAE,EAAE,KAAK,CAAA;IACT,OAAO,CAAC,EAAE,UAAU,CAAA;IACpB,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG,gBAAgB,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/Jwt/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,UAAW,SAAQ,SAAS;IAC3C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,SAAS,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,UAAU,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,UAAU,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,SAAS,CAAA;IACjB,OAAO,EAAE,UAAU,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,SAAS,CAAA;IACjB,EAAE,EAAE,IAAI,CAAA;IACR,OAAO,EAAE,UAAU,CAAA;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,EAAE,EAAE,KAAK,CAAA;IACT,OAAO,CAAC,EAAE,UAAU,CAAA;IACpB,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG,gBAAgB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare function addressTo20Bytes(address: string): ArrayBufferLike;
2
+ //# sourceMappingURL=addressTo20Bytes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addressTo20Bytes.d.ts","sourceRoot":"","sources":["../../src/addressTo20Bytes.ts"],"names":[],"mappings":"AAIA,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAEjE"}
@@ -1,6 +1,6 @@
1
1
  export * from './Account.ts';
2
+ export * from './addressTo20Bytes.ts';
2
3
  export * from './Algorithm.ts';
3
4
  export * from './Jwt/index.ts';
4
5
  export * from './VerifierRegistry.ts';
5
- export * from './XyoAddress.ts';
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA"}
@@ -23,9 +23,13 @@ var isInitializationConfig = (value) => {
23
23
  return isPhraseInitializationConfig(value) || isPrivateKeyInitializationConfig(value) || isMnemonicInitializationConfig(value);
24
24
  };
25
25
  var isAccountInstance = (account) => {
26
- return typeof account === "object" && typeof account["address"] === "string";
26
+ if (typeof account !== "object" || account === null) return false;
27
+ return typeof account.address === "string";
27
28
  };
28
29
 
30
+ // src/addressTo20Bytes.ts
31
+ import { toUint8Array } from "@xylabs/sdk-js";
32
+
29
33
  // src/Algorithm.ts
30
34
  var AccountAlgorithmPrefix = {
31
35
  "secp256k1": null,
@@ -47,6 +51,11 @@ function prefixForAlgorithm(algorithm) {
47
51
  return prefix === null ? "" : `${prefix}_`;
48
52
  }
49
53
 
54
+ // src/addressTo20Bytes.ts
55
+ function addressTo20Bytes(address) {
56
+ return toUint8Array(stripAddressPrefix(address), 20).buffer;
57
+ }
58
+
50
59
  // src/Jwt/constants.ts
51
60
  import { Enum } from "@xylabs/sdk-js";
52
61
  var JwtAlg = Enum({ ES256K: "ES256K" });
@@ -69,35 +78,13 @@ async function verifySignature(address, hash, signature) {
69
78
  }
70
79
  return await fn(address, hash, signature);
71
80
  }
72
-
73
- // src/XyoAddress.ts
74
- import {
75
- AddressZod,
76
- asAddress,
77
- isAddress,
78
- toUint8Array
79
- } from "@xylabs/sdk-js";
80
- var XyoAddressRegEx = /^(?:qr1_)?[0-9a-f]{40}$/;
81
- var XyoAddressZod = AddressZod;
82
- function isXyoAddress(value) {
83
- return isAddress(value);
84
- }
85
- function asXyoAddress(value) {
86
- return asAddress(value);
87
- }
88
- function addressTo20Bytes(address) {
89
- return toUint8Array(stripAddressPrefix(address), 20).buffer;
90
- }
91
81
  export {
92
82
  AccountAlgorithmPrefix,
93
83
  JwtAlg,
94
84
  JwtSchema,
95
85
  JwtTyp,
96
- XyoAddressRegEx,
97
- XyoAddressZod,
98
86
  addressTo20Bytes,
99
87
  algorithmFromAddress,
100
- asXyoAddress,
101
88
  ethMessagePrefix,
102
89
  getVerifier,
103
90
  isAccountInstance,
@@ -105,7 +92,6 @@ export {
105
92
  isMnemonicInitializationConfig,
106
93
  isPhraseInitializationConfig,
107
94
  isPrivateKeyInitializationConfig,
108
- isXyoAddress,
109
95
  prefixForAlgorithm,
110
96
  registerVerifier,
111
97
  stripAddressPrefix,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/Account.ts", "../../src/Algorithm.ts", "../../src/Jwt/constants.ts", "../../src/VerifierRegistry.ts", "../../src/XyoAddress.ts"],
4
- "sourcesContent": ["import type { Address, Hash } from '@xylabs/sdk-js'\nimport { isArrayBuffer } from '@xylabs/sdk-js'\nimport type { PrivateKeyInstance, PublicKeyInstance } from '@xyo-network/key-model'\nimport type { PreviousHashStore } from '@xyo-network/previous-hash-store-model'\n\nimport type { AccountAlgorithm } from './Algorithm.ts'\nimport type { SignJwtOptions, SignJwtResult } from './Jwt/types.ts'\n\nexport const ethMessagePrefix = '\\u0019Ethereum Signed Message:\\n'\n\nexport interface PhraseInitializationConfig {\n phrase: string\n}\nexport interface PrivateKeyInitializationConfig {\n privateKey: ArrayBufferLike\n}\nexport interface MnemonicInitializationConfig {\n mnemonic: string\n path?: string\n}\nexport interface AccountOptions {\n previousHash?: ArrayBufferLike\n}\n\nexport type InitializationConfig = PhraseInitializationConfig | PrivateKeyInitializationConfig | MnemonicInitializationConfig\n\nexport type AccountConfig = InitializationConfig & AccountOptions\n\nexport const isPhraseInitializationConfig = (value: unknown): value is PhraseInitializationConfig => {\n if (typeof value === 'object' && value !== null) {\n return typeof (value as PhraseInitializationConfig).phrase === 'string'\n }\n return false\n}\n\nexport const isPrivateKeyInitializationConfig = (value: unknown): value is PrivateKeyInitializationConfig => {\n if (typeof value === 'object' && value !== null) {\n return isArrayBuffer((value as PrivateKeyInitializationConfig).privateKey)\n }\n return false\n}\n\nexport const isMnemonicInitializationConfig = (value: unknown): value is MnemonicInitializationConfig => {\n if (typeof value === 'object' && value !== null) {\n return (\n typeof (value as MnemonicInitializationConfig).mnemonic === 'string' && typeof ((value as MnemonicInitializationConfig).path ?? '') === 'string'\n )\n }\n return false\n}\n\nexport const isInitializationConfig = (value: unknown): value is InitializationConfig => {\n return isPhraseInitializationConfig(value) || isPrivateKeyInitializationConfig(value) || isMnemonicInitializationConfig(value)\n}\n\nexport interface AccountInstance {\n readonly address: Address\n readonly addressBytes: ArrayBufferLike\n readonly algorithm: AccountAlgorithm\n previousHash: Hash | undefined\n previousHashBytes: ArrayBufferLike | undefined\n readonly private?: PrivateKeyInstance\n readonly public?: PublicKeyInstance\n sign: (hash: ArrayBufferLike, previousHash?: ArrayBufferLike) => Promise<[ArrayBufferLike, Hash?]>\n signJwt: (options: SignJwtOptions) => Promise<SignJwtResult>\n verify: (msg: ArrayBufferLike, signature: ArrayBufferLike) => Promise<boolean>\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const isAccountInstance = (account: any): account is AccountInstance => {\n return typeof account === 'object' && typeof account['address'] === 'string'\n}\n\nexport interface AccountStatic<T extends AccountInstance = AccountInstance, C extends AccountConfig = AccountConfig> {\n previousHashStore?: PreviousHashStore\n create(options?: C): Promise<T>\n fromPrivateKey(key: ArrayBufferLike | bigint | string): Promise<AccountInstance>\n random(): Promise<AccountInstance>\n}\n", "export type AccountAlgorithm = 'secp256k1' | 'ml-dsa-65'\n\nexport const AccountAlgorithmPrefix = {\n 'secp256k1': null,\n 'ml-dsa-65': 'qr1',\n} as const satisfies Record<AccountAlgorithm, string | null>\n\nexport function algorithmFromAddress(address: string): AccountAlgorithm {\n const underscore = address.indexOf('_')\n // secp256k1 addresses are unprefixed bare 40-hex strings\n if (underscore === -1) return 'secp256k1'\n const prefix = address.slice(0, underscore)\n if (prefix === AccountAlgorithmPrefix['ml-dsa-65']) return 'ml-dsa-65'\n throw new Error(`Unknown address algorithm prefix [${prefix}]`)\n}\n\nexport function stripAddressPrefix(address: string): string {\n const underscore = address.indexOf('_')\n return underscore === -1 ? address : address.slice(underscore + 1)\n}\n\nexport function prefixForAlgorithm(algorithm: AccountAlgorithm): string {\n const prefix = AccountAlgorithmPrefix[algorithm]\n return prefix === null ? '' : `${prefix}_`\n}\n", "import { Enum } from '@xylabs/sdk-js'\n\nexport const JwtAlg = Enum({ ES256K: 'ES256K' } as const)\nexport type JwtAlg = Enum<typeof JwtAlg>\n\nexport const JwtTyp = Enum({ JWT: 'JWT' } as const)\nexport type JwtTyp = Enum<typeof JwtTyp>\n\nexport const JwtSchema = Enum({ Signin: 'network.xyo.auth.signin' } as const)\nexport type JwtSchema = Enum<typeof JwtSchema>\n", "import type { AccountAlgorithm } from './Algorithm.ts'\nimport { algorithmFromAddress } from './Algorithm.ts'\n\nexport type VerifySignatureFn = (address: string, hash: ArrayBufferLike, signature: ArrayBufferLike) => Promise<boolean>\n\nconst registry: Partial<Record<AccountAlgorithm, VerifySignatureFn>> = {}\n\nexport function registerVerifier(algorithm: AccountAlgorithm, fn: VerifySignatureFn): void {\n registry[algorithm] = fn\n}\n\nexport function getVerifier(algorithm: AccountAlgorithm): VerifySignatureFn | undefined {\n return registry[algorithm]\n}\n\nexport async function verifySignature(address: string, hash: ArrayBufferLike, signature: ArrayBufferLike): Promise<boolean> {\n const algorithm = algorithmFromAddress(address)\n const fn = registry[algorithm]\n if (!fn) {\n throw new Error(`No verifier registered for algorithm [${algorithm}]. Did you import the account package?`)\n }\n return await fn(address, hash, signature)\n}\n", "import {\n AddressZod, asAddress, isAddress, toUint8Array,\n} from '@xylabs/sdk-js'\nimport type * as z from 'zod/mini'\n\nimport { stripAddressPrefix } from './Algorithm.ts'\n\nexport const XyoAddressRegEx = /^(?:qr1_)?[0-9a-f]{40}$/\n\nexport const XyoAddressZod = AddressZod\n\nexport type XyoAddress = z.infer<typeof XyoAddressZod>\n\nexport function isXyoAddress(value: unknown): value is XyoAddress {\n return isAddress(value)\n}\n\nexport function asXyoAddress(value: unknown): XyoAddress | undefined {\n return asAddress(value)\n}\n\nexport function addressTo20Bytes(address: string): ArrayBufferLike {\n return toUint8Array(stripAddressPrefix(address), 20).buffer\n}\n"],
5
- "mappings": ";AACA,SAAS,qBAAqB;AAOvB,IAAM,mBAAmB;AAoBzB,IAAM,+BAA+B,CAAC,UAAwD;AACnG,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAC/C,WAAO,OAAQ,MAAqC,WAAW;AAAA,EACjE;AACA,SAAO;AACT;AAEO,IAAM,mCAAmC,CAAC,UAA4D;AAC3G,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAC/C,WAAO,cAAe,MAAyC,UAAU;AAAA,EAC3E;AACA,SAAO;AACT;AAEO,IAAM,iCAAiC,CAAC,UAA0D;AACvG,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAC/C,WACE,OAAQ,MAAuC,aAAa,YAAY,QAAS,MAAuC,QAAQ,QAAQ;AAAA,EAE5I;AACA,SAAO;AACT;AAEO,IAAM,yBAAyB,CAAC,UAAkD;AACvF,SAAO,6BAA6B,KAAK,KAAK,iCAAiC,KAAK,KAAK,+BAA+B,KAAK;AAC/H;AAgBO,IAAM,oBAAoB,CAAC,YAA6C;AAC7E,SAAO,OAAO,YAAY,YAAY,OAAO,QAAQ,SAAS,MAAM;AACtE;;;ACrEO,IAAM,yBAAyB;AAAA,EACpC,aAAa;AAAA,EACb,aAAa;AACf;AAEO,SAAS,qBAAqB,SAAmC;AACtE,QAAM,aAAa,QAAQ,QAAQ,GAAG;AAEtC,MAAI,eAAe,GAAI,QAAO;AAC9B,QAAM,SAAS,QAAQ,MAAM,GAAG,UAAU;AAC1C,MAAI,WAAW,uBAAuB,WAAW,EAAG,QAAO;AAC3D,QAAM,IAAI,MAAM,qCAAqC,MAAM,GAAG;AAChE;AAEO,SAAS,mBAAmB,SAAyB;AAC1D,QAAM,aAAa,QAAQ,QAAQ,GAAG;AACtC,SAAO,eAAe,KAAK,UAAU,QAAQ,MAAM,aAAa,CAAC;AACnE;AAEO,SAAS,mBAAmB,WAAqC;AACtE,QAAM,SAAS,uBAAuB,SAAS;AAC/C,SAAO,WAAW,OAAO,KAAK,GAAG,MAAM;AACzC;;;ACxBA,SAAS,YAAY;AAEd,IAAM,SAAS,KAAK,EAAE,QAAQ,SAAS,CAAU;AAGjD,IAAM,SAAS,KAAK,EAAE,KAAK,MAAM,CAAU;AAG3C,IAAM,YAAY,KAAK,EAAE,QAAQ,0BAA0B,CAAU;;;ACH5E,IAAM,WAAiE,CAAC;AAEjE,SAAS,iBAAiB,WAA6B,IAA6B;AACzF,WAAS,SAAS,IAAI;AACxB;AAEO,SAAS,YAAY,WAA4D;AACtF,SAAO,SAAS,SAAS;AAC3B;AAEA,eAAsB,gBAAgB,SAAiB,MAAuB,WAA8C;AAC1H,QAAM,YAAY,qBAAqB,OAAO;AAC9C,QAAM,KAAK,SAAS,SAAS;AAC7B,MAAI,CAAC,IAAI;AACP,UAAM,IAAI,MAAM,yCAAyC,SAAS,wCAAwC;AAAA,EAC5G;AACA,SAAO,MAAM,GAAG,SAAS,MAAM,SAAS;AAC1C;;;ACtBA;AAAA,EACE;AAAA,EAAY;AAAA,EAAW;AAAA,EAAW;AAAA,OAC7B;AAKA,IAAM,kBAAkB;AAExB,IAAM,gBAAgB;AAItB,SAAS,aAAa,OAAqC;AAChE,SAAO,UAAU,KAAK;AACxB;AAEO,SAAS,aAAa,OAAwC;AACnE,SAAO,UAAU,KAAK;AACxB;AAEO,SAAS,iBAAiB,SAAkC;AACjE,SAAO,aAAa,mBAAmB,OAAO,GAAG,EAAE,EAAE;AACvD;",
3
+ "sources": ["../../src/Account.ts", "../../src/addressTo20Bytes.ts", "../../src/Algorithm.ts", "../../src/Jwt/constants.ts", "../../src/VerifierRegistry.ts"],
4
+ "sourcesContent": ["import type { Hash } from '@xylabs/sdk-js'\nimport { isArrayBuffer } from '@xylabs/sdk-js'\nimport type { XyoAddress } from '@xyo-network/address'\nimport type { PrivateKeyInstance, PublicKeyInstance } from '@xyo-network/key-model'\nimport type { PreviousHashStore } from '@xyo-network/previous-hash-store-model'\n\nimport type { AccountAlgorithm } from './Algorithm.ts'\nimport type { SignJwtOptions, SignJwtResult } from './Jwt/types.ts'\n\nexport const ethMessagePrefix = '\\u0019Ethereum Signed Message:\\n'\n\nexport interface PhraseInitializationConfig {\n phrase: string\n}\nexport interface PrivateKeyInitializationConfig {\n privateKey: ArrayBufferLike\n}\nexport interface MnemonicInitializationConfig {\n mnemonic: string\n path?: string\n}\nexport interface AccountOptions {\n previousHash?: ArrayBufferLike\n}\n\nexport type InitializationConfig = PhraseInitializationConfig | PrivateKeyInitializationConfig | MnemonicInitializationConfig\n\nexport type AccountConfig = InitializationConfig & AccountOptions\n\nexport const isPhraseInitializationConfig = (value: unknown): value is PhraseInitializationConfig => {\n if (typeof value === 'object' && value !== null) {\n return typeof (value as PhraseInitializationConfig).phrase === 'string'\n }\n return false\n}\n\nexport const isPrivateKeyInitializationConfig = (value: unknown): value is PrivateKeyInitializationConfig => {\n if (typeof value === 'object' && value !== null) {\n return isArrayBuffer((value as PrivateKeyInitializationConfig).privateKey)\n }\n return false\n}\n\nexport const isMnemonicInitializationConfig = (value: unknown): value is MnemonicInitializationConfig => {\n if (typeof value === 'object' && value !== null) {\n return (\n typeof (value as MnemonicInitializationConfig).mnemonic === 'string' && typeof ((value as MnemonicInitializationConfig).path ?? '') === 'string'\n )\n }\n return false\n}\n\nexport const isInitializationConfig = (value: unknown): value is InitializationConfig => {\n return isPhraseInitializationConfig(value) || isPrivateKeyInitializationConfig(value) || isMnemonicInitializationConfig(value)\n}\n\nexport interface AccountInstance {\n readonly address: XyoAddress\n readonly addressBytes: ArrayBufferLike\n readonly algorithm: AccountAlgorithm\n previousHash: Hash | undefined\n previousHashBytes: ArrayBufferLike | undefined\n readonly private?: PrivateKeyInstance\n readonly public?: PublicKeyInstance\n sign: (hash: ArrayBufferLike, previousHash?: ArrayBufferLike) => Promise<[ArrayBufferLike, Hash?]>\n signJwt: (options: SignJwtOptions) => Promise<SignJwtResult>\n verify: (msg: ArrayBufferLike, signature: ArrayBufferLike) => Promise<boolean>\n}\n\nexport const isAccountInstance = (account: unknown): account is AccountInstance => {\n if (typeof account !== 'object' || account === null) return false\n return typeof (account as { address?: unknown }).address === 'string'\n}\n\nexport interface AccountStatic<T extends AccountInstance = AccountInstance, C extends AccountConfig = AccountConfig> {\n previousHashStore?: PreviousHashStore\n create(options?: C): Promise<T>\n fromPrivateKey(key: ArrayBufferLike | bigint | string): Promise<AccountInstance>\n random(): Promise<AccountInstance>\n}\n", "import { toUint8Array } from '@xylabs/sdk-js'\n\nimport { stripAddressPrefix } from './Algorithm.ts'\n\nexport function addressTo20Bytes(address: string): ArrayBufferLike {\n return toUint8Array(stripAddressPrefix(address), 20).buffer\n}\n", "export type AccountAlgorithm = 'secp256k1' | 'ml-dsa-65'\n\nexport const AccountAlgorithmPrefix = {\n 'secp256k1': null,\n 'ml-dsa-65': 'qr1',\n} as const satisfies Record<AccountAlgorithm, string | null>\n\nexport function algorithmFromAddress(address: string): AccountAlgorithm {\n const underscore = address.indexOf('_')\n // secp256k1 addresses are unprefixed bare 40-hex strings\n if (underscore === -1) return 'secp256k1'\n const prefix = address.slice(0, underscore)\n if (prefix === AccountAlgorithmPrefix['ml-dsa-65']) return 'ml-dsa-65'\n throw new Error(`Unknown address algorithm prefix [${prefix}]`)\n}\n\nexport function stripAddressPrefix(address: string): string {\n const underscore = address.indexOf('_')\n return underscore === -1 ? address : address.slice(underscore + 1)\n}\n\nexport function prefixForAlgorithm(algorithm: AccountAlgorithm): string {\n const prefix = AccountAlgorithmPrefix[algorithm]\n return prefix === null ? '' : `${prefix}_`\n}\n", "import { Enum } from '@xylabs/sdk-js'\n\nexport const JwtAlg = Enum({ ES256K: 'ES256K' } as const)\nexport type JwtAlg = Enum<typeof JwtAlg>\n\nexport const JwtTyp = Enum({ JWT: 'JWT' } as const)\nexport type JwtTyp = Enum<typeof JwtTyp>\n\nexport const JwtSchema = Enum({ Signin: 'network.xyo.auth.signin' } as const)\nexport type JwtSchema = Enum<typeof JwtSchema>\n", "import type { AccountAlgorithm } from './Algorithm.ts'\nimport { algorithmFromAddress } from './Algorithm.ts'\n\nexport type VerifySignatureFn = (address: string, hash: ArrayBufferLike, signature: ArrayBufferLike) => Promise<boolean>\n\nconst registry: Partial<Record<AccountAlgorithm, VerifySignatureFn>> = {}\n\nexport function registerVerifier(algorithm: AccountAlgorithm, fn: VerifySignatureFn): void {\n registry[algorithm] = fn\n}\n\nexport function getVerifier(algorithm: AccountAlgorithm): VerifySignatureFn | undefined {\n return registry[algorithm]\n}\n\nexport async function verifySignature(address: string, hash: ArrayBufferLike, signature: ArrayBufferLike): Promise<boolean> {\n const algorithm = algorithmFromAddress(address)\n const fn = registry[algorithm]\n if (!fn) {\n throw new Error(`No verifier registered for algorithm [${algorithm}]. Did you import the account package?`)\n }\n return await fn(address, hash, signature)\n}\n"],
5
+ "mappings": ";AACA,SAAS,qBAAqB;AAQvB,IAAM,mBAAmB;AAoBzB,IAAM,+BAA+B,CAAC,UAAwD;AACnG,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAC/C,WAAO,OAAQ,MAAqC,WAAW;AAAA,EACjE;AACA,SAAO;AACT;AAEO,IAAM,mCAAmC,CAAC,UAA4D;AAC3G,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAC/C,WAAO,cAAe,MAAyC,UAAU;AAAA,EAC3E;AACA,SAAO;AACT;AAEO,IAAM,iCAAiC,CAAC,UAA0D;AACvG,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAC/C,WACE,OAAQ,MAAuC,aAAa,YAAY,QAAS,MAAuC,QAAQ,QAAQ;AAAA,EAE5I;AACA,SAAO;AACT;AAEO,IAAM,yBAAyB,CAAC,UAAkD;AACvF,SAAO,6BAA6B,KAAK,KAAK,iCAAiC,KAAK,KAAK,+BAA+B,KAAK;AAC/H;AAeO,IAAM,oBAAoB,CAAC,YAAiD;AACjF,MAAI,OAAO,YAAY,YAAY,YAAY,KAAM,QAAO;AAC5D,SAAO,OAAQ,QAAkC,YAAY;AAC/D;;;ACxEA,SAAS,oBAAoB;;;ACEtB,IAAM,yBAAyB;AAAA,EACpC,aAAa;AAAA,EACb,aAAa;AACf;AAEO,SAAS,qBAAqB,SAAmC;AACtE,QAAM,aAAa,QAAQ,QAAQ,GAAG;AAEtC,MAAI,eAAe,GAAI,QAAO;AAC9B,QAAM,SAAS,QAAQ,MAAM,GAAG,UAAU;AAC1C,MAAI,WAAW,uBAAuB,WAAW,EAAG,QAAO;AAC3D,QAAM,IAAI,MAAM,qCAAqC,MAAM,GAAG;AAChE;AAEO,SAAS,mBAAmB,SAAyB;AAC1D,QAAM,aAAa,QAAQ,QAAQ,GAAG;AACtC,SAAO,eAAe,KAAK,UAAU,QAAQ,MAAM,aAAa,CAAC;AACnE;AAEO,SAAS,mBAAmB,WAAqC;AACtE,QAAM,SAAS,uBAAuB,SAAS;AAC/C,SAAO,WAAW,OAAO,KAAK,GAAG,MAAM;AACzC;;;ADpBO,SAAS,iBAAiB,SAAkC;AACjE,SAAO,aAAa,mBAAmB,OAAO,GAAG,EAAE,EAAE;AACvD;;;AENA,SAAS,YAAY;AAEd,IAAM,SAAS,KAAK,EAAE,QAAQ,SAAS,CAAU;AAGjD,IAAM,SAAS,KAAK,EAAE,KAAK,MAAM,CAAU;AAG3C,IAAM,YAAY,KAAK,EAAE,QAAQ,0BAA0B,CAAU;;;ACH5E,IAAM,WAAiE,CAAC;AAEjE,SAAS,iBAAiB,WAA6B,IAA6B;AACzF,WAAS,SAAS,IAAI;AACxB;AAEO,SAAS,YAAY,WAA4D;AACtF,SAAO,SAAS,SAAS;AAC3B;AAEA,eAAsB,gBAAgB,SAAiB,MAAuB,WAA8C;AAC1H,QAAM,YAAY,qBAAqB,OAAO;AAC9C,QAAM,KAAK,SAAS,SAAS;AAC7B,MAAI,CAAC,IAAI;AACP,UAAM,IAAI,MAAM,yCAAyC,SAAS,wCAAwC;AAAA,EAC5G;AACA,SAAO,MAAM,GAAG,SAAS,MAAM,SAAS;AAC1C;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,5 @@
1
- import type { Address, Hash } from '@xylabs/sdk-js';
1
+ import type { Hash } from '@xylabs/sdk-js';
2
+ import type { XyoAddress } from '@xyo-network/address';
2
3
  import type { PrivateKeyInstance, PublicKeyInstance } from '@xyo-network/key-model';
3
4
  import type { PreviousHashStore } from '@xyo-network/previous-hash-store-model';
4
5
  import type { AccountAlgorithm } from './Algorithm.ts';
@@ -24,7 +25,7 @@ export declare const isPrivateKeyInitializationConfig: (value: unknown) => value
24
25
  export declare const isMnemonicInitializationConfig: (value: unknown) => value is MnemonicInitializationConfig;
25
26
  export declare const isInitializationConfig: (value: unknown) => value is InitializationConfig;
26
27
  export interface AccountInstance {
27
- readonly address: Address;
28
+ readonly address: XyoAddress;
28
29
  readonly addressBytes: ArrayBufferLike;
29
30
  readonly algorithm: AccountAlgorithm;
30
31
  previousHash: Hash | undefined;
@@ -35,7 +36,7 @@ export interface AccountInstance {
35
36
  signJwt: (options: SignJwtOptions) => Promise<SignJwtResult>;
36
37
  verify: (msg: ArrayBufferLike, signature: ArrayBufferLike) => Promise<boolean>;
37
38
  }
38
- export declare const isAccountInstance: (account: any) => account is AccountInstance;
39
+ export declare const isAccountInstance: (account: unknown) => account is AccountInstance;
39
40
  export interface AccountStatic<T extends AccountInstance = AccountInstance, C extends AccountConfig = AccountConfig> {
40
41
  previousHashStore?: PreviousHashStore;
41
42
  create(options?: C): Promise<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"Account.d.ts","sourceRoot":"","sources":["../../src/Account.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAEnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AACnF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAE/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAEnE,eAAO,MAAM,gBAAgB,qCAAqC,CAAA;AAElE,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAA;CACf;AACD,MAAM,WAAW,8BAA8B;IAC7C,UAAU,EAAE,eAAe,CAAA;CAC5B;AACD,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AACD,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,EAAE,eAAe,CAAA;CAC/B;AAED,MAAM,MAAM,oBAAoB,GAAG,0BAA0B,GAAG,8BAA8B,GAAG,4BAA4B,CAAA;AAE7H,MAAM,MAAM,aAAa,GAAG,oBAAoB,GAAG,cAAc,CAAA;AAEjE,eAAO,MAAM,4BAA4B,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,0BAKtE,CAAA;AAED,eAAO,MAAM,gCAAgC,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,8BAK1E,CAAA;AAED,eAAO,MAAM,8BAA8B,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,4BAOxE,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,oBAEhE,CAAA;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAA;IACtC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAA;IACpC,YAAY,EAAE,IAAI,GAAG,SAAS,CAAA;IAC9B,iBAAiB,EAAE,eAAe,GAAG,SAAS,CAAA;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAA;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAA;IACnC,IAAI,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,YAAY,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;IAClG,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,aAAa,CAAC,CAAA;IAC5D,MAAM,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,SAAS,EAAE,eAAe,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CAC/E;AAGD,eAAO,MAAM,iBAAiB,GAAI,SAAS,GAAG,KAAG,OAAO,IAAI,eAE3D,CAAA;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,EAAE,CAAC,SAAS,aAAa,GAAG,aAAa;IACjH,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IAC/B,cAAc,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IAChF,MAAM,IAAI,OAAO,CAAC,eAAe,CAAC,CAAA;CACnC"}
1
+ {"version":3,"file":"Account.d.ts","sourceRoot":"","sources":["../../src/Account.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAE1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AACnF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAE/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAEnE,eAAO,MAAM,gBAAgB,qCAAqC,CAAA;AAElE,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAA;CACf;AACD,MAAM,WAAW,8BAA8B;IAC7C,UAAU,EAAE,eAAe,CAAA;CAC5B;AACD,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AACD,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,EAAE,eAAe,CAAA;CAC/B;AAED,MAAM,MAAM,oBAAoB,GAAG,0BAA0B,GAAG,8BAA8B,GAAG,4BAA4B,CAAA;AAE7H,MAAM,MAAM,aAAa,GAAG,oBAAoB,GAAG,cAAc,CAAA;AAEjE,eAAO,MAAM,4BAA4B,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,0BAKtE,CAAA;AAED,eAAO,MAAM,gCAAgC,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,8BAK1E,CAAA;AAED,eAAO,MAAM,8BAA8B,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,4BAOxE,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,oBAEhE,CAAA;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAA;IAC5B,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAA;IACtC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAA;IACpC,YAAY,EAAE,IAAI,GAAG,SAAS,CAAA;IAC9B,iBAAiB,EAAE,eAAe,GAAG,SAAS,CAAA;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAA;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAA;IACnC,IAAI,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,YAAY,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;IAClG,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,aAAa,CAAC,CAAA;IAC5D,MAAM,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,SAAS,EAAE,eAAe,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CAC/E;AAED,eAAO,MAAM,iBAAiB,GAAI,SAAS,OAAO,KAAG,OAAO,IAAI,eAG/D,CAAA;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,EAAE,CAAC,SAAS,aAAa,GAAG,aAAa;IACjH,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IAC/B,cAAc,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IAChF,MAAM,IAAI,OAAO,CAAC,eAAe,CAAC,CAAA;CACnC"}
@@ -1,10 +1,8 @@
1
- import type { EnumValue } from '@xylabs/sdk-js';
2
- import type { JwtAlg, JwtSchema, JwtTyp } from './constants.ts';
3
1
  export interface JwtHeader {
4
- alg: EnumValue<typeof JwtAlg> | string;
2
+ alg: string;
5
3
  kid: string;
6
4
  pub: string;
7
- typ: EnumValue<typeof JwtTyp> | string;
5
+ typ: string;
8
6
  }
9
7
  export interface JwtClaims {
10
8
  aud: string;
@@ -16,7 +14,7 @@ export interface JwtClaims {
16
14
  }
17
15
  export interface JwtPayload extends JwtClaims {
18
16
  [key: string]: unknown;
19
- schema: EnumValue<typeof JwtSchema> | string;
17
+ schema: string;
20
18
  }
21
19
  export interface JwtParts {
22
20
  header: JwtHeader;
@@ -31,7 +29,7 @@ export interface SignJwtOptions {
31
29
  claims?: Record<string, unknown>;
32
30
  exp?: number;
33
31
  now?: number;
34
- schema?: EnumValue<typeof JwtSchema> | string;
32
+ schema?: string;
35
33
  ttl?: number;
36
34
  }
37
35
  export interface SignJwtResult {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/Jwt/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE/C,OAAO,KAAK,EACV,MAAM,EAAE,SAAS,EAAE,MAAM,EAC1B,MAAM,gBAAgB,CAAA;AAEvB,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,SAAS,CAAC,OAAO,MAAM,CAAC,GAAG,MAAM,CAAA;IACtC,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,SAAS,CAAC,OAAO,MAAM,CAAC,GAAG,MAAM,CAAA;CACvC;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,UAAW,SAAQ,SAAS;IAC3C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;IACtB,MAAM,EAAE,SAAS,CAAC,OAAO,SAAS,CAAC,GAAG,MAAM,CAAA;CAC7C;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,SAAS,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,UAAU,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,UAAU,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,SAAS,CAAC,OAAO,SAAS,CAAC,GAAG,MAAM,CAAA;IAC7C,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,SAAS,CAAA;IACjB,OAAO,EAAE,UAAU,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,SAAS,CAAA;IACjB,EAAE,EAAE,IAAI,CAAA;IACR,OAAO,EAAE,UAAU,CAAA;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,EAAE,EAAE,KAAK,CAAA;IACT,OAAO,CAAC,EAAE,UAAU,CAAA;IACpB,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG,gBAAgB,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/Jwt/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,UAAW,SAAQ,SAAS;IAC3C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,SAAS,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,UAAU,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,UAAU,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,SAAS,CAAA;IACjB,OAAO,EAAE,UAAU,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,SAAS,CAAA;IACjB,EAAE,EAAE,IAAI,CAAA;IACR,OAAO,EAAE,UAAU,CAAA;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,EAAE,EAAE,KAAK,CAAA;IACT,OAAO,CAAC,EAAE,UAAU,CAAA;IACpB,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG,gBAAgB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare function addressTo20Bytes(address: string): ArrayBufferLike;
2
+ //# sourceMappingURL=addressTo20Bytes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addressTo20Bytes.d.ts","sourceRoot":"","sources":["../../src/addressTo20Bytes.ts"],"names":[],"mappings":"AAIA,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAEjE"}
@@ -1,6 +1,6 @@
1
1
  export * from './Account.ts';
2
+ export * from './addressTo20Bytes.ts';
2
3
  export * from './Algorithm.ts';
3
4
  export * from './Jwt/index.ts';
4
5
  export * from './VerifierRegistry.ts';
5
- export * from './XyoAddress.ts';
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA"}
@@ -23,9 +23,13 @@ var isInitializationConfig = (value) => {
23
23
  return isPhraseInitializationConfig(value) || isPrivateKeyInitializationConfig(value) || isMnemonicInitializationConfig(value);
24
24
  };
25
25
  var isAccountInstance = (account) => {
26
- return typeof account === "object" && typeof account["address"] === "string";
26
+ if (typeof account !== "object" || account === null) return false;
27
+ return typeof account.address === "string";
27
28
  };
28
29
 
30
+ // src/addressTo20Bytes.ts
31
+ import { toUint8Array } from "@xylabs/sdk-js";
32
+
29
33
  // src/Algorithm.ts
30
34
  var AccountAlgorithmPrefix = {
31
35
  "secp256k1": null,
@@ -47,6 +51,11 @@ function prefixForAlgorithm(algorithm) {
47
51
  return prefix === null ? "" : `${prefix}_`;
48
52
  }
49
53
 
54
+ // src/addressTo20Bytes.ts
55
+ function addressTo20Bytes(address) {
56
+ return toUint8Array(stripAddressPrefix(address), 20).buffer;
57
+ }
58
+
50
59
  // src/Jwt/constants.ts
51
60
  import { Enum } from "@xylabs/sdk-js";
52
61
  var JwtAlg = Enum({ ES256K: "ES256K" });
@@ -69,35 +78,13 @@ async function verifySignature(address, hash, signature) {
69
78
  }
70
79
  return await fn(address, hash, signature);
71
80
  }
72
-
73
- // src/XyoAddress.ts
74
- import {
75
- AddressZod,
76
- asAddress,
77
- isAddress,
78
- toUint8Array
79
- } from "@xylabs/sdk-js";
80
- var XyoAddressRegEx = /^(?:qr1_)?[0-9a-f]{40}$/;
81
- var XyoAddressZod = AddressZod;
82
- function isXyoAddress(value) {
83
- return isAddress(value);
84
- }
85
- function asXyoAddress(value) {
86
- return asAddress(value);
87
- }
88
- function addressTo20Bytes(address) {
89
- return toUint8Array(stripAddressPrefix(address), 20).buffer;
90
- }
91
81
  export {
92
82
  AccountAlgorithmPrefix,
93
83
  JwtAlg,
94
84
  JwtSchema,
95
85
  JwtTyp,
96
- XyoAddressRegEx,
97
- XyoAddressZod,
98
86
  addressTo20Bytes,
99
87
  algorithmFromAddress,
100
- asXyoAddress,
101
88
  ethMessagePrefix,
102
89
  getVerifier,
103
90
  isAccountInstance,
@@ -105,7 +92,6 @@ export {
105
92
  isMnemonicInitializationConfig,
106
93
  isPhraseInitializationConfig,
107
94
  isPrivateKeyInitializationConfig,
108
- isXyoAddress,
109
95
  prefixForAlgorithm,
110
96
  registerVerifier,
111
97
  stripAddressPrefix,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/Account.ts", "../../src/Algorithm.ts", "../../src/Jwt/constants.ts", "../../src/VerifierRegistry.ts", "../../src/XyoAddress.ts"],
4
- "sourcesContent": ["import type { Address, Hash } from '@xylabs/sdk-js'\nimport { isArrayBuffer } from '@xylabs/sdk-js'\nimport type { PrivateKeyInstance, PublicKeyInstance } from '@xyo-network/key-model'\nimport type { PreviousHashStore } from '@xyo-network/previous-hash-store-model'\n\nimport type { AccountAlgorithm } from './Algorithm.ts'\nimport type { SignJwtOptions, SignJwtResult } from './Jwt/types.ts'\n\nexport const ethMessagePrefix = '\\u0019Ethereum Signed Message:\\n'\n\nexport interface PhraseInitializationConfig {\n phrase: string\n}\nexport interface PrivateKeyInitializationConfig {\n privateKey: ArrayBufferLike\n}\nexport interface MnemonicInitializationConfig {\n mnemonic: string\n path?: string\n}\nexport interface AccountOptions {\n previousHash?: ArrayBufferLike\n}\n\nexport type InitializationConfig = PhraseInitializationConfig | PrivateKeyInitializationConfig | MnemonicInitializationConfig\n\nexport type AccountConfig = InitializationConfig & AccountOptions\n\nexport const isPhraseInitializationConfig = (value: unknown): value is PhraseInitializationConfig => {\n if (typeof value === 'object' && value !== null) {\n return typeof (value as PhraseInitializationConfig).phrase === 'string'\n }\n return false\n}\n\nexport const isPrivateKeyInitializationConfig = (value: unknown): value is PrivateKeyInitializationConfig => {\n if (typeof value === 'object' && value !== null) {\n return isArrayBuffer((value as PrivateKeyInitializationConfig).privateKey)\n }\n return false\n}\n\nexport const isMnemonicInitializationConfig = (value: unknown): value is MnemonicInitializationConfig => {\n if (typeof value === 'object' && value !== null) {\n return (\n typeof (value as MnemonicInitializationConfig).mnemonic === 'string' && typeof ((value as MnemonicInitializationConfig).path ?? '') === 'string'\n )\n }\n return false\n}\n\nexport const isInitializationConfig = (value: unknown): value is InitializationConfig => {\n return isPhraseInitializationConfig(value) || isPrivateKeyInitializationConfig(value) || isMnemonicInitializationConfig(value)\n}\n\nexport interface AccountInstance {\n readonly address: Address\n readonly addressBytes: ArrayBufferLike\n readonly algorithm: AccountAlgorithm\n previousHash: Hash | undefined\n previousHashBytes: ArrayBufferLike | undefined\n readonly private?: PrivateKeyInstance\n readonly public?: PublicKeyInstance\n sign: (hash: ArrayBufferLike, previousHash?: ArrayBufferLike) => Promise<[ArrayBufferLike, Hash?]>\n signJwt: (options: SignJwtOptions) => Promise<SignJwtResult>\n verify: (msg: ArrayBufferLike, signature: ArrayBufferLike) => Promise<boolean>\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const isAccountInstance = (account: any): account is AccountInstance => {\n return typeof account === 'object' && typeof account['address'] === 'string'\n}\n\nexport interface AccountStatic<T extends AccountInstance = AccountInstance, C extends AccountConfig = AccountConfig> {\n previousHashStore?: PreviousHashStore\n create(options?: C): Promise<T>\n fromPrivateKey(key: ArrayBufferLike | bigint | string): Promise<AccountInstance>\n random(): Promise<AccountInstance>\n}\n", "export type AccountAlgorithm = 'secp256k1' | 'ml-dsa-65'\n\nexport const AccountAlgorithmPrefix = {\n 'secp256k1': null,\n 'ml-dsa-65': 'qr1',\n} as const satisfies Record<AccountAlgorithm, string | null>\n\nexport function algorithmFromAddress(address: string): AccountAlgorithm {\n const underscore = address.indexOf('_')\n // secp256k1 addresses are unprefixed bare 40-hex strings\n if (underscore === -1) return 'secp256k1'\n const prefix = address.slice(0, underscore)\n if (prefix === AccountAlgorithmPrefix['ml-dsa-65']) return 'ml-dsa-65'\n throw new Error(`Unknown address algorithm prefix [${prefix}]`)\n}\n\nexport function stripAddressPrefix(address: string): string {\n const underscore = address.indexOf('_')\n return underscore === -1 ? address : address.slice(underscore + 1)\n}\n\nexport function prefixForAlgorithm(algorithm: AccountAlgorithm): string {\n const prefix = AccountAlgorithmPrefix[algorithm]\n return prefix === null ? '' : `${prefix}_`\n}\n", "import { Enum } from '@xylabs/sdk-js'\n\nexport const JwtAlg = Enum({ ES256K: 'ES256K' } as const)\nexport type JwtAlg = Enum<typeof JwtAlg>\n\nexport const JwtTyp = Enum({ JWT: 'JWT' } as const)\nexport type JwtTyp = Enum<typeof JwtTyp>\n\nexport const JwtSchema = Enum({ Signin: 'network.xyo.auth.signin' } as const)\nexport type JwtSchema = Enum<typeof JwtSchema>\n", "import type { AccountAlgorithm } from './Algorithm.ts'\nimport { algorithmFromAddress } from './Algorithm.ts'\n\nexport type VerifySignatureFn = (address: string, hash: ArrayBufferLike, signature: ArrayBufferLike) => Promise<boolean>\n\nconst registry: Partial<Record<AccountAlgorithm, VerifySignatureFn>> = {}\n\nexport function registerVerifier(algorithm: AccountAlgorithm, fn: VerifySignatureFn): void {\n registry[algorithm] = fn\n}\n\nexport function getVerifier(algorithm: AccountAlgorithm): VerifySignatureFn | undefined {\n return registry[algorithm]\n}\n\nexport async function verifySignature(address: string, hash: ArrayBufferLike, signature: ArrayBufferLike): Promise<boolean> {\n const algorithm = algorithmFromAddress(address)\n const fn = registry[algorithm]\n if (!fn) {\n throw new Error(`No verifier registered for algorithm [${algorithm}]. Did you import the account package?`)\n }\n return await fn(address, hash, signature)\n}\n", "import {\n AddressZod, asAddress, isAddress, toUint8Array,\n} from '@xylabs/sdk-js'\nimport type * as z from 'zod/mini'\n\nimport { stripAddressPrefix } from './Algorithm.ts'\n\nexport const XyoAddressRegEx = /^(?:qr1_)?[0-9a-f]{40}$/\n\nexport const XyoAddressZod = AddressZod\n\nexport type XyoAddress = z.infer<typeof XyoAddressZod>\n\nexport function isXyoAddress(value: unknown): value is XyoAddress {\n return isAddress(value)\n}\n\nexport function asXyoAddress(value: unknown): XyoAddress | undefined {\n return asAddress(value)\n}\n\nexport function addressTo20Bytes(address: string): ArrayBufferLike {\n return toUint8Array(stripAddressPrefix(address), 20).buffer\n}\n"],
5
- "mappings": ";AACA,SAAS,qBAAqB;AAOvB,IAAM,mBAAmB;AAoBzB,IAAM,+BAA+B,CAAC,UAAwD;AACnG,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAC/C,WAAO,OAAQ,MAAqC,WAAW;AAAA,EACjE;AACA,SAAO;AACT;AAEO,IAAM,mCAAmC,CAAC,UAA4D;AAC3G,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAC/C,WAAO,cAAe,MAAyC,UAAU;AAAA,EAC3E;AACA,SAAO;AACT;AAEO,IAAM,iCAAiC,CAAC,UAA0D;AACvG,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAC/C,WACE,OAAQ,MAAuC,aAAa,YAAY,QAAS,MAAuC,QAAQ,QAAQ;AAAA,EAE5I;AACA,SAAO;AACT;AAEO,IAAM,yBAAyB,CAAC,UAAkD;AACvF,SAAO,6BAA6B,KAAK,KAAK,iCAAiC,KAAK,KAAK,+BAA+B,KAAK;AAC/H;AAgBO,IAAM,oBAAoB,CAAC,YAA6C;AAC7E,SAAO,OAAO,YAAY,YAAY,OAAO,QAAQ,SAAS,MAAM;AACtE;;;ACrEO,IAAM,yBAAyB;AAAA,EACpC,aAAa;AAAA,EACb,aAAa;AACf;AAEO,SAAS,qBAAqB,SAAmC;AACtE,QAAM,aAAa,QAAQ,QAAQ,GAAG;AAEtC,MAAI,eAAe,GAAI,QAAO;AAC9B,QAAM,SAAS,QAAQ,MAAM,GAAG,UAAU;AAC1C,MAAI,WAAW,uBAAuB,WAAW,EAAG,QAAO;AAC3D,QAAM,IAAI,MAAM,qCAAqC,MAAM,GAAG;AAChE;AAEO,SAAS,mBAAmB,SAAyB;AAC1D,QAAM,aAAa,QAAQ,QAAQ,GAAG;AACtC,SAAO,eAAe,KAAK,UAAU,QAAQ,MAAM,aAAa,CAAC;AACnE;AAEO,SAAS,mBAAmB,WAAqC;AACtE,QAAM,SAAS,uBAAuB,SAAS;AAC/C,SAAO,WAAW,OAAO,KAAK,GAAG,MAAM;AACzC;;;ACxBA,SAAS,YAAY;AAEd,IAAM,SAAS,KAAK,EAAE,QAAQ,SAAS,CAAU;AAGjD,IAAM,SAAS,KAAK,EAAE,KAAK,MAAM,CAAU;AAG3C,IAAM,YAAY,KAAK,EAAE,QAAQ,0BAA0B,CAAU;;;ACH5E,IAAM,WAAiE,CAAC;AAEjE,SAAS,iBAAiB,WAA6B,IAA6B;AACzF,WAAS,SAAS,IAAI;AACxB;AAEO,SAAS,YAAY,WAA4D;AACtF,SAAO,SAAS,SAAS;AAC3B;AAEA,eAAsB,gBAAgB,SAAiB,MAAuB,WAA8C;AAC1H,QAAM,YAAY,qBAAqB,OAAO;AAC9C,QAAM,KAAK,SAAS,SAAS;AAC7B,MAAI,CAAC,IAAI;AACP,UAAM,IAAI,MAAM,yCAAyC,SAAS,wCAAwC;AAAA,EAC5G;AACA,SAAO,MAAM,GAAG,SAAS,MAAM,SAAS;AAC1C;;;ACtBA;AAAA,EACE;AAAA,EAAY;AAAA,EAAW;AAAA,EAAW;AAAA,OAC7B;AAKA,IAAM,kBAAkB;AAExB,IAAM,gBAAgB;AAItB,SAAS,aAAa,OAAqC;AAChE,SAAO,UAAU,KAAK;AACxB;AAEO,SAAS,aAAa,OAAwC;AACnE,SAAO,UAAU,KAAK;AACxB;AAEO,SAAS,iBAAiB,SAAkC;AACjE,SAAO,aAAa,mBAAmB,OAAO,GAAG,EAAE,EAAE;AACvD;",
3
+ "sources": ["../../src/Account.ts", "../../src/addressTo20Bytes.ts", "../../src/Algorithm.ts", "../../src/Jwt/constants.ts", "../../src/VerifierRegistry.ts"],
4
+ "sourcesContent": ["import type { Hash } from '@xylabs/sdk-js'\nimport { isArrayBuffer } from '@xylabs/sdk-js'\nimport type { XyoAddress } from '@xyo-network/address'\nimport type { PrivateKeyInstance, PublicKeyInstance } from '@xyo-network/key-model'\nimport type { PreviousHashStore } from '@xyo-network/previous-hash-store-model'\n\nimport type { AccountAlgorithm } from './Algorithm.ts'\nimport type { SignJwtOptions, SignJwtResult } from './Jwt/types.ts'\n\nexport const ethMessagePrefix = '\\u0019Ethereum Signed Message:\\n'\n\nexport interface PhraseInitializationConfig {\n phrase: string\n}\nexport interface PrivateKeyInitializationConfig {\n privateKey: ArrayBufferLike\n}\nexport interface MnemonicInitializationConfig {\n mnemonic: string\n path?: string\n}\nexport interface AccountOptions {\n previousHash?: ArrayBufferLike\n}\n\nexport type InitializationConfig = PhraseInitializationConfig | PrivateKeyInitializationConfig | MnemonicInitializationConfig\n\nexport type AccountConfig = InitializationConfig & AccountOptions\n\nexport const isPhraseInitializationConfig = (value: unknown): value is PhraseInitializationConfig => {\n if (typeof value === 'object' && value !== null) {\n return typeof (value as PhraseInitializationConfig).phrase === 'string'\n }\n return false\n}\n\nexport const isPrivateKeyInitializationConfig = (value: unknown): value is PrivateKeyInitializationConfig => {\n if (typeof value === 'object' && value !== null) {\n return isArrayBuffer((value as PrivateKeyInitializationConfig).privateKey)\n }\n return false\n}\n\nexport const isMnemonicInitializationConfig = (value: unknown): value is MnemonicInitializationConfig => {\n if (typeof value === 'object' && value !== null) {\n return (\n typeof (value as MnemonicInitializationConfig).mnemonic === 'string' && typeof ((value as MnemonicInitializationConfig).path ?? '') === 'string'\n )\n }\n return false\n}\n\nexport const isInitializationConfig = (value: unknown): value is InitializationConfig => {\n return isPhraseInitializationConfig(value) || isPrivateKeyInitializationConfig(value) || isMnemonicInitializationConfig(value)\n}\n\nexport interface AccountInstance {\n readonly address: XyoAddress\n readonly addressBytes: ArrayBufferLike\n readonly algorithm: AccountAlgorithm\n previousHash: Hash | undefined\n previousHashBytes: ArrayBufferLike | undefined\n readonly private?: PrivateKeyInstance\n readonly public?: PublicKeyInstance\n sign: (hash: ArrayBufferLike, previousHash?: ArrayBufferLike) => Promise<[ArrayBufferLike, Hash?]>\n signJwt: (options: SignJwtOptions) => Promise<SignJwtResult>\n verify: (msg: ArrayBufferLike, signature: ArrayBufferLike) => Promise<boolean>\n}\n\nexport const isAccountInstance = (account: unknown): account is AccountInstance => {\n if (typeof account !== 'object' || account === null) return false\n return typeof (account as { address?: unknown }).address === 'string'\n}\n\nexport interface AccountStatic<T extends AccountInstance = AccountInstance, C extends AccountConfig = AccountConfig> {\n previousHashStore?: PreviousHashStore\n create(options?: C): Promise<T>\n fromPrivateKey(key: ArrayBufferLike | bigint | string): Promise<AccountInstance>\n random(): Promise<AccountInstance>\n}\n", "import { toUint8Array } from '@xylabs/sdk-js'\n\nimport { stripAddressPrefix } from './Algorithm.ts'\n\nexport function addressTo20Bytes(address: string): ArrayBufferLike {\n return toUint8Array(stripAddressPrefix(address), 20).buffer\n}\n", "export type AccountAlgorithm = 'secp256k1' | 'ml-dsa-65'\n\nexport const AccountAlgorithmPrefix = {\n 'secp256k1': null,\n 'ml-dsa-65': 'qr1',\n} as const satisfies Record<AccountAlgorithm, string | null>\n\nexport function algorithmFromAddress(address: string): AccountAlgorithm {\n const underscore = address.indexOf('_')\n // secp256k1 addresses are unprefixed bare 40-hex strings\n if (underscore === -1) return 'secp256k1'\n const prefix = address.slice(0, underscore)\n if (prefix === AccountAlgorithmPrefix['ml-dsa-65']) return 'ml-dsa-65'\n throw new Error(`Unknown address algorithm prefix [${prefix}]`)\n}\n\nexport function stripAddressPrefix(address: string): string {\n const underscore = address.indexOf('_')\n return underscore === -1 ? address : address.slice(underscore + 1)\n}\n\nexport function prefixForAlgorithm(algorithm: AccountAlgorithm): string {\n const prefix = AccountAlgorithmPrefix[algorithm]\n return prefix === null ? '' : `${prefix}_`\n}\n", "import { Enum } from '@xylabs/sdk-js'\n\nexport const JwtAlg = Enum({ ES256K: 'ES256K' } as const)\nexport type JwtAlg = Enum<typeof JwtAlg>\n\nexport const JwtTyp = Enum({ JWT: 'JWT' } as const)\nexport type JwtTyp = Enum<typeof JwtTyp>\n\nexport const JwtSchema = Enum({ Signin: 'network.xyo.auth.signin' } as const)\nexport type JwtSchema = Enum<typeof JwtSchema>\n", "import type { AccountAlgorithm } from './Algorithm.ts'\nimport { algorithmFromAddress } from './Algorithm.ts'\n\nexport type VerifySignatureFn = (address: string, hash: ArrayBufferLike, signature: ArrayBufferLike) => Promise<boolean>\n\nconst registry: Partial<Record<AccountAlgorithm, VerifySignatureFn>> = {}\n\nexport function registerVerifier(algorithm: AccountAlgorithm, fn: VerifySignatureFn): void {\n registry[algorithm] = fn\n}\n\nexport function getVerifier(algorithm: AccountAlgorithm): VerifySignatureFn | undefined {\n return registry[algorithm]\n}\n\nexport async function verifySignature(address: string, hash: ArrayBufferLike, signature: ArrayBufferLike): Promise<boolean> {\n const algorithm = algorithmFromAddress(address)\n const fn = registry[algorithm]\n if (!fn) {\n throw new Error(`No verifier registered for algorithm [${algorithm}]. Did you import the account package?`)\n }\n return await fn(address, hash, signature)\n}\n"],
5
+ "mappings": ";AACA,SAAS,qBAAqB;AAQvB,IAAM,mBAAmB;AAoBzB,IAAM,+BAA+B,CAAC,UAAwD;AACnG,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAC/C,WAAO,OAAQ,MAAqC,WAAW;AAAA,EACjE;AACA,SAAO;AACT;AAEO,IAAM,mCAAmC,CAAC,UAA4D;AAC3G,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAC/C,WAAO,cAAe,MAAyC,UAAU;AAAA,EAC3E;AACA,SAAO;AACT;AAEO,IAAM,iCAAiC,CAAC,UAA0D;AACvG,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAC/C,WACE,OAAQ,MAAuC,aAAa,YAAY,QAAS,MAAuC,QAAQ,QAAQ;AAAA,EAE5I;AACA,SAAO;AACT;AAEO,IAAM,yBAAyB,CAAC,UAAkD;AACvF,SAAO,6BAA6B,KAAK,KAAK,iCAAiC,KAAK,KAAK,+BAA+B,KAAK;AAC/H;AAeO,IAAM,oBAAoB,CAAC,YAAiD;AACjF,MAAI,OAAO,YAAY,YAAY,YAAY,KAAM,QAAO;AAC5D,SAAO,OAAQ,QAAkC,YAAY;AAC/D;;;ACxEA,SAAS,oBAAoB;;;ACEtB,IAAM,yBAAyB;AAAA,EACpC,aAAa;AAAA,EACb,aAAa;AACf;AAEO,SAAS,qBAAqB,SAAmC;AACtE,QAAM,aAAa,QAAQ,QAAQ,GAAG;AAEtC,MAAI,eAAe,GAAI,QAAO;AAC9B,QAAM,SAAS,QAAQ,MAAM,GAAG,UAAU;AAC1C,MAAI,WAAW,uBAAuB,WAAW,EAAG,QAAO;AAC3D,QAAM,IAAI,MAAM,qCAAqC,MAAM,GAAG;AAChE;AAEO,SAAS,mBAAmB,SAAyB;AAC1D,QAAM,aAAa,QAAQ,QAAQ,GAAG;AACtC,SAAO,eAAe,KAAK,UAAU,QAAQ,MAAM,aAAa,CAAC;AACnE;AAEO,SAAS,mBAAmB,WAAqC;AACtE,QAAM,SAAS,uBAAuB,SAAS;AAC/C,SAAO,WAAW,OAAO,KAAK,GAAG,MAAM;AACzC;;;ADpBO,SAAS,iBAAiB,SAAkC;AACjE,SAAO,aAAa,mBAAmB,OAAO,GAAG,EAAE,EAAE;AACvD;;;AENA,SAAS,YAAY;AAEd,IAAM,SAAS,KAAK,EAAE,QAAQ,SAAS,CAAU;AAGjD,IAAM,SAAS,KAAK,EAAE,KAAK,MAAM,CAAU;AAG3C,IAAM,YAAY,KAAK,EAAE,QAAQ,0BAA0B,CAAU;;;ACH5E,IAAM,WAAiE,CAAC;AAEjE,SAAS,iBAAiB,WAA6B,IAA6B;AACzF,WAAS,SAAS,IAAI;AACxB;AAEO,SAAS,YAAY,WAA4D;AACtF,SAAO,SAAS,SAAS;AAC3B;AAEA,eAAsB,gBAAgB,SAAiB,MAAuB,WAA8C;AAC1H,QAAM,YAAY,qBAAqB,OAAO;AAC9C,QAAM,KAAK,SAAS,SAAS;AAC7B,MAAI,CAAC,IAAI;AACP,UAAM,IAAI,MAAM,yCAAyC,SAAS,wCAAwC;AAAA,EAC5G;AACA,SAAO,MAAM,GAAG,SAAS,MAAM,SAAS;AAC1C;",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/account-model",
3
- "version": "6.0.4",
3
+ "version": "6.0.6",
4
4
  "description": "Primary SDK for using XYO Protocol 2.0",
5
5
  "homepage": "https://xyo.network",
6
6
  "bugs": {
@@ -34,23 +34,23 @@
34
34
  "README.md"
35
35
  ],
36
36
  "dependencies": {
37
- "@xyo-network/key-model": "~6.0.4",
38
- "@xyo-network/previous-hash-store-model": "~6.0.4"
37
+ "@xyo-network/key-model": "~6.0.6",
38
+ "@xyo-network/address": "~6.0.6",
39
+ "@xyo-network/previous-hash-store-model": "~6.0.6"
39
40
  },
40
41
  "devDependencies": {
41
42
  "@opentelemetry/api": "^1.9.1",
42
43
  "@opentelemetry/sdk-trace-base": "^2.7.1",
43
44
  "@scure/base": "~2.2.0",
44
- "@xylabs/sdk-js": "~6.0.2",
45
- "@xylabs/toolchain": "~8.1.1",
46
- "@xylabs/tsconfig": "~8.1.1",
45
+ "@xylabs/sdk-js": "~6.0.6",
46
+ "@xylabs/toolchain": "~8.1.8",
47
+ "@xylabs/tsconfig": "~8.1.8",
47
48
  "async-mutex": "^0.5.0",
48
49
  "bn.js": "^5.2.3",
49
50
  "buffer": "^6.0.3",
50
- "chalk": "^5.6.2",
51
- "eslint": "^10.4.0",
51
+ "eslint": "^10.4.1",
52
52
  "ethers": "^6.16.0",
53
- "pako": "~2.1.0",
53
+ "pako": "^2.1",
54
54
  "typescript": "~6.0.3",
55
55
  "zod": "^4.4.3"
56
56
  },
@@ -62,9 +62,8 @@
62
62
  "async-mutex": "^0.5",
63
63
  "bn.js": "^5.2",
64
64
  "buffer": "^6.0",
65
- "chalk": "^5.6",
66
65
  "ethers": "^6.16",
67
- "pako": "~2.1",
66
+ "pako": "^2.1",
68
67
  "zod": "^4.4"
69
68
  },
70
69
  "engines": {
@@ -1,12 +0,0 @@
1
- import type * as z from 'zod/mini';
2
- export declare const XyoAddressRegEx: RegExp;
3
- export declare const XyoAddressZod: z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<Lowercase<string> & {
4
- readonly __hex: true;
5
- } & {
6
- readonly __address: true;
7
- }, string>>;
8
- export type XyoAddress = z.infer<typeof XyoAddressZod>;
9
- export declare function isXyoAddress(value: unknown): value is XyoAddress;
10
- export declare function asXyoAddress(value: unknown): XyoAddress | undefined;
11
- export declare function addressTo20Bytes(address: string): ArrayBufferLike;
12
- //# sourceMappingURL=XyoAddress.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"XyoAddress.d.ts","sourceRoot":"","sources":["../../src/XyoAddress.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,CAAC,MAAM,UAAU,CAAA;AAIlC,eAAO,MAAM,eAAe,QAA4B,CAAA;AAExD,eAAO,MAAM,aAAa;;;;WAAa,CAAA;AAEvC,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA;AAEtD,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAEhE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAEnE;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAEjE"}
@@ -1,12 +0,0 @@
1
- import type * as z from 'zod/mini';
2
- export declare const XyoAddressRegEx: RegExp;
3
- export declare const XyoAddressZod: z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<Lowercase<string> & {
4
- readonly __hex: true;
5
- } & {
6
- readonly __address: true;
7
- }, string>>;
8
- export type XyoAddress = z.infer<typeof XyoAddressZod>;
9
- export declare function isXyoAddress(value: unknown): value is XyoAddress;
10
- export declare function asXyoAddress(value: unknown): XyoAddress | undefined;
11
- export declare function addressTo20Bytes(address: string): ArrayBufferLike;
12
- //# sourceMappingURL=XyoAddress.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"XyoAddress.d.ts","sourceRoot":"","sources":["../../src/XyoAddress.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,CAAC,MAAM,UAAU,CAAA;AAIlC,eAAO,MAAM,eAAe,QAA4B,CAAA;AAExD,eAAO,MAAM,aAAa;;;;WAAa,CAAA;AAEvC,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA;AAEtD,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAEhE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAEnE;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAEjE"}
@@ -1,12 +0,0 @@
1
- import type * as z from 'zod/mini';
2
- export declare const XyoAddressRegEx: RegExp;
3
- export declare const XyoAddressZod: z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<Lowercase<string> & {
4
- readonly __hex: true;
5
- } & {
6
- readonly __address: true;
7
- }, string>>;
8
- export type XyoAddress = z.infer<typeof XyoAddressZod>;
9
- export declare function isXyoAddress(value: unknown): value is XyoAddress;
10
- export declare function asXyoAddress(value: unknown): XyoAddress | undefined;
11
- export declare function addressTo20Bytes(address: string): ArrayBufferLike;
12
- //# sourceMappingURL=XyoAddress.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"XyoAddress.d.ts","sourceRoot":"","sources":["../../src/XyoAddress.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,CAAC,MAAM,UAAU,CAAA;AAIlC,eAAO,MAAM,eAAe,QAA4B,CAAA;AAExD,eAAO,MAAM,aAAa;;;;WAAa,CAAA;AAEvC,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA;AAEtD,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAEhE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAEnE;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAEjE"}