@amadeus-protocol/sdk 1.0.4 → 1.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.
@@ -20,15 +20,17 @@ export declare function fromAtomicAma(atomicAma: number | string): number;
20
20
  /**
21
21
  * Convert human-readable AMA amount to atomic units
22
22
  *
23
- * Uses Math.trunc to avoid floating-point precision issues.
23
+ * Uses string splitting to avoid floating-point precision issues
24
+ * while preserving truncation (never rounds up) for safety.
24
25
  *
25
- * @param ama - Human-readable AMA amount
26
+ * @param ama - Human-readable AMA amount (number or string)
26
27
  * @returns Atomic units (integer)
27
28
  *
28
29
  * @example
29
30
  * ```ts
30
- * const atomic = toAtomicAma(1.5) // Returns 1500000000
31
+ * const atomic = toAtomicAma(1.5) // Returns 1500000000
32
+ * const atomic = toAtomicAma('1.00000001') // Returns 1000000010
31
33
  * ```
32
34
  */
33
- export declare function toAtomicAma(ama: number): number;
35
+ export declare function toAtomicAma(ama: number | string): number;
34
36
  //# sourceMappingURL=conversion.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversion.d.ts","sourceRoot":"","sources":["../src/conversion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAgBhE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C"}
1
+ {"version":3,"file":"conversion.d.ts","sourceRoot":"","sources":["../src/conversion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAgBhE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAIxD"}
@@ -4,7 +4,7 @@
4
4
  * This module provides functions for converting between atomic units
5
5
  * and human-readable token amounts for the AMA token.
6
6
  */
7
- import { AMA_TOKEN_DECIMALS_MULTIPLIER } from './constants';
7
+ import { AMA_TOKEN_DECIMALS, AMA_TOKEN_DECIMALS_MULTIPLIER } from './constants';
8
8
  /**
9
9
  * Convert atomic AMA units to human-readable AMA amount
10
10
  *
@@ -36,17 +36,21 @@ export function fromAtomicAma(atomicAma) {
36
36
  /**
37
37
  * Convert human-readable AMA amount to atomic units
38
38
  *
39
- * Uses Math.trunc to avoid floating-point precision issues.
39
+ * Uses string splitting to avoid floating-point precision issues
40
+ * while preserving truncation (never rounds up) for safety.
40
41
  *
41
- * @param ama - Human-readable AMA amount
42
+ * @param ama - Human-readable AMA amount (number or string)
42
43
  * @returns Atomic units (integer)
43
44
  *
44
45
  * @example
45
46
  * ```ts
46
- * const atomic = toAtomicAma(1.5) // Returns 1500000000
47
+ * const atomic = toAtomicAma(1.5) // Returns 1500000000
48
+ * const atomic = toAtomicAma('1.00000001') // Returns 1000000010
47
49
  * ```
48
50
  */
49
51
  export function toAtomicAma(ama) {
50
- return Math.trunc(ama * AMA_TOKEN_DECIMALS_MULTIPLIER);
52
+ const num = typeof ama === 'string' ? parseFloat(ama) : ama;
53
+ const [int, frac = ''] = num.toFixed(AMA_TOKEN_DECIMALS).split('.');
54
+ return parseInt(int + frac, 10);
51
55
  }
52
56
  //# sourceMappingURL=conversion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversion.js","sourceRoot":"","sources":["../src/conversion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAA;AAE3D;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAAC,SAA0B;IACvD,MAAM,eAAe,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAEzF,IAAI,KAAK,CAAC,eAAe,CAAC,IAAI,eAAe,KAAK,CAAC,EAAE,CAAC;QACrD,OAAO,CAAC,CAAA;IACT,CAAC;IACD,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;IAC9C,CAAC;IACD,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACxC,CAAC;IACD,IAAI,eAAe,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;IACtD,CAAC;IACD,OAAO,eAAe,GAAG,6BAA6B,CAAA;AACvD,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACtC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,6BAA6B,CAAC,CAAA;AACvD,CAAC"}
1
+ {"version":3,"file":"conversion.js","sourceRoot":"","sources":["../src/conversion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAA;AAE/E;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAAC,SAA0B;IACvD,MAAM,eAAe,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAEzF,IAAI,KAAK,CAAC,eAAe,CAAC,IAAI,eAAe,KAAK,CAAC,EAAE,CAAC;QACrD,OAAO,CAAC,CAAA;IACT,CAAC;IACD,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;IAC9C,CAAC;IACD,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACxC,CAAC;IACD,IAAI,eAAe,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;IACtD,CAAC;IACD,OAAO,eAAe,GAAG,6BAA6B,CAAA;AACvD,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,WAAW,CAAC,GAAoB;IAC/C,MAAM,GAAG,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;IAC3D,MAAM,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACnE,OAAO,QAAQ,CAAC,GAAG,GAAG,IAAI,EAAE,EAAE,CAAC,CAAA;AAChC,CAAC"}
@@ -7,7 +7,7 @@
7
7
  * Format a number with locale-aware commas and specified decimal places
8
8
  *
9
9
  * @param num - The number to format
10
- * @param digits - Maximum fraction digits (default: 8)
10
+ * @param digits - Maximum fraction digits (default: AMA_TOKEN_DECIMALS)
11
11
  * @returns Formatted number string
12
12
  *
13
13
  * @example
@@ -1 +1 @@
1
- {"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../src/formatters.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI,GAAG,MAAM,CAE5D;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAYzE;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACvC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EACnC,YAAY,EAAE,OAAO,GACnB,MAAM,CAGR;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,MAAM,CAGrE"}
1
+ {"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../src/formatters.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAqB,GAAG,MAAM,CAE7E;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAYzE;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACvC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EACnC,YAAY,EAAE,OAAO,GACnB,MAAM,CAGR;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,MAAM,CAGrE"}
@@ -8,7 +8,7 @@ import { AMA_TOKEN_DECIMALS } from './constants';
8
8
  * Format a number with locale-aware commas and specified decimal places
9
9
  *
10
10
  * @param num - The number to format
11
- * @param digits - Maximum fraction digits (default: 8)
11
+ * @param digits - Maximum fraction digits (default: AMA_TOKEN_DECIMALS)
12
12
  * @returns Formatted number string
13
13
  *
14
14
  * @example
@@ -17,7 +17,7 @@ import { AMA_TOKEN_DECIMALS } from './constants';
17
17
  * formatNumber(1.123456789, 4) // "1.1235"
18
18
  * ```
19
19
  */
20
- export function formatNumber(num, digits = 8) {
20
+ export function formatNumber(num, digits = AMA_TOKEN_DECIMALS) {
21
21
  return num.toLocaleString(undefined, { maximumFractionDigits: digits });
22
22
  }
23
23
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"formatters.js","sourceRoot":"","sources":["../src/formatters.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAEhD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW,EAAE,MAAM,GAAG,CAAC;IACnD,OAAO,GAAG,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,CAAA;AACxE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc;IAC7C,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAA;AACrC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,MAAmC;IAChE,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,GAAG,CAAA;IAEpC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,GAAG,CAAC,cAAc,CAAC,SAAS,EAAE;YACpC,qBAAqB,EAAE,CAAC;YACxB,qBAAqB,EAAE,kBAAkB;SACzC,CAAC,CAAA;IACH,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,CAAA;AACtB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACvC,MAAmC,EACnC,YAAqB;IAErB,IAAI,YAAY;QAAE,OAAO,QAAQ,CAAA;IACjC,OAAO,aAAa,CAAC,MAAM,CAAC,CAAA;AAC7B,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe,EAAE,KAAK,GAAG,CAAC;IAC5D,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,OAAO,IAAI,EAAE,CAAA;IACjE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,CAAA;AACvF,CAAC"}
1
+ {"version":3,"file":"formatters.js","sourceRoot":"","sources":["../src/formatters.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAEhD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW,EAAE,MAAM,GAAG,kBAAkB;IACpE,OAAO,GAAG,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,CAAA;AACxE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc;IAC7C,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAA;AACrC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,MAAmC;IAChE,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,GAAG,CAAA;IAEpC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,GAAG,CAAC,cAAc,CAAC,SAAS,EAAE;YACpC,qBAAqB,EAAE,CAAC;YACxB,qBAAqB,EAAE,kBAAkB;SACzC,CAAC,CAAA;IACH,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,CAAA;AACtB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACvC,MAAmC,EACnC,YAAqB;IAErB,IAAI,YAAY;QAAE,OAAO,QAAQ,CAAA;IACjC,OAAO,aAAa,CAAC,MAAM,CAAC,CAAA;AAC7B,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe,EAAE,KAAK,GAAG,CAAC;IAC5D,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,OAAO,IAAI,EAAE,CAAA;IACjE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,CAAA;AACvF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amadeus-protocol/sdk",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "description": "Official TypeScript/JavaScript SDK for Amadeus Protocol - Core utilities for serialization, cryptography, transaction building, and API client",
5
5
  "repository": {
6
6
  "type": "git",