@xian-tech/types 0.1.11 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,20 @@
1
+ # @xian-tech/types
2
+
3
+ This package owns the shared TypeScript contracts used across the `xian-js`
4
+ workspace: transaction payload and envelope types, signer interfaces, and
5
+ broadcast-mode and numeric helper types.
6
+
7
+ It has no workspace dependencies and no runtime logic. `@xian-tech/client`
8
+ and `@xian-tech/provider` build on these types so dapps, wallets, and tools
9
+ can share one transaction model.
10
+
11
+ ## Contents
12
+
13
+ - `src/index.ts`: the full exported type surface, including
14
+ `XianTxPayload`, `XianUnsignedTransaction`, `XianSignedTransaction`,
15
+ `XianSigner`, `BroadcastMode`, and `XianNumber`.
16
+
17
+ ## Notes
18
+
19
+ - Changes here are cross-package API changes; align `client/`, `provider/`,
20
+ and downstream wallet repos in the same change set.
package/dist/index.d.ts CHANGED
@@ -22,4 +22,5 @@ export interface XianSignedTransaction {
22
22
  signature: string;
23
23
  };
24
24
  }
25
+ export { XIAN_SIGNED_MESSAGE_VERSION, createXianMessageSigningPayload, type XianSignedMessageInput } from "./message-signing.js";
25
26
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE3D,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzC,MAAM,WAAW,UAAU;IACzB,UAAU,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IACxC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;CACxD;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,UAAU,CAAC;CAC1B;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,aAAa,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,EAAE;QACR,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE3D,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzC,MAAM,WAAW,UAAU;IACzB,UAAU,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IACxC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;CACxD;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,UAAU,CAAC;CAC1B;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,aAAa,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,EAAE;QACR,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,OAAO,EACL,2BAA2B,EAC3B,+BAA+B,EAC/B,KAAK,sBAAsB,EAC5B,MAAM,sBAAsB,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export {};
1
+ export { XIAN_SIGNED_MESSAGE_VERSION, createXianMessageSigningPayload } from "./message-signing.js";
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA8BA,OAAO,EACL,2BAA2B,EAC3B,+BAA+B,EAEhC,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare const XIAN_SIGNED_MESSAGE_VERSION: 1;
2
+ export interface XianSignedMessageInput {
3
+ account: string;
4
+ chainId: string;
5
+ message: string;
6
+ }
7
+ export declare function createXianMessageSigningPayload(input: XianSignedMessageInput): string;
8
+ //# sourceMappingURL=message-signing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-signing.d.ts","sourceRoot":"","sources":["../src/message-signing.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B,EAAG,CAAU,CAAC;AAGtD,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAUD,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,sBAAsB,GAC5B,MAAM,CAqBR"}
@@ -0,0 +1,29 @@
1
+ export const XIAN_SIGNED_MESSAGE_VERSION = 1;
2
+ const XIAN_SIGNED_MESSAGE_HEADER = "\u0019Xian Signed Message:";
3
+ function utf8ByteLength(value) {
4
+ return new TextEncoder().encode(value).length;
5
+ }
6
+ function lengthPrefixedField(name, value) {
7
+ return `${name}:${utf8ByteLength(value)}:${value}`;
8
+ }
9
+ export function createXianMessageSigningPayload(input) {
10
+ const account = input.account.trim().toLowerCase();
11
+ const chainId = input.chainId.trim();
12
+ if (!/^[0-9a-f]{64}$/.test(account)) {
13
+ throw new TypeError("message signing account must be a 32-byte hex public key");
14
+ }
15
+ if (!chainId) {
16
+ throw new TypeError("message signing chainId is required");
17
+ }
18
+ if (typeof input.message !== "string") {
19
+ throw new TypeError("message to sign must be a string");
20
+ }
21
+ return [
22
+ XIAN_SIGNED_MESSAGE_HEADER,
23
+ String(XIAN_SIGNED_MESSAGE_VERSION),
24
+ lengthPrefixedField("chain-id", chainId),
25
+ lengthPrefixedField("account", account),
26
+ lengthPrefixedField("message", input.message)
27
+ ].join("\n");
28
+ }
29
+ //# sourceMappingURL=message-signing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-signing.js","sourceRoot":"","sources":["../src/message-signing.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAU,CAAC;AACtD,MAAM,0BAA0B,GAAG,4BAA4B,CAAC;AAQhE,SAAS,cAAc,CAAC,KAAa;IACnC,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AAChD,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY,EAAE,KAAa;IACtD,OAAO,GAAG,IAAI,IAAI,cAAc,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,KAA6B;IAE7B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACnD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACrC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,SAAS,CACjB,0DAA0D,CAC3D,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,SAAS,CAAC,qCAAqC,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACtC,MAAM,IAAI,SAAS,CAAC,kCAAkC,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO;QACL,0BAA0B;QAC1B,MAAM,CAAC,2BAA2B,CAAC;QACnC,mBAAmB,CAAC,UAAU,EAAE,OAAO,CAAC;QACxC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC;QACvC,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC;KAC9C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xian-tech/types",
3
- "version": "0.1.11",
3
+ "version": "0.2.0",
4
4
  "description": "Shared TypeScript types used across the Xian JS workspace",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",