@kynesyslabs/demosdk 2.11.6 → 2.12.1
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/build/denomination/constants.d.ts +24 -0
- package/build/denomination/constants.js +27 -0
- package/build/denomination/constants.js.map +1 -0
- package/build/denomination/conversion.d.ts +78 -0
- package/build/denomination/conversion.js +114 -0
- package/build/denomination/conversion.js.map +1 -0
- package/build/denomination/conversion.test.d.ts +1 -0
- package/build/denomination/conversion.test.js +60 -0
- package/build/denomination/conversion.test.js.map +1 -0
- package/build/denomination/index.d.ts +10 -0
- package/build/denomination/index.js +12 -0
- package/build/denomination/index.js.map +1 -0
- package/build/index.d.ts +1 -0
- package/build/index.js +3 -0
- package/build/index.js.map +1 -1
- package/build/websdk/BroadcastFailedError.d.ts +22 -0
- package/build/websdk/BroadcastFailedError.js +24 -0
- package/build/websdk/BroadcastFailedError.js.map +1 -0
- package/build/websdk/BroadcastTimeoutError.d.ts +19 -0
- package/build/websdk/BroadcastTimeoutError.js +19 -0
- package/build/websdk/BroadcastTimeoutError.js.map +1 -0
- package/build/websdk/DemosTransactions.d.ts +42 -1
- package/build/websdk/DemosTransactions.js +121 -0
- package/build/websdk/DemosTransactions.js.map +1 -1
- package/build/websdk/TransportError.d.ts +17 -0
- package/build/websdk/TransportError.js +18 -0
- package/build/websdk/TransportError.js.map +1 -0
- package/build/websdk/demosclass.d.ts +74 -0
- package/build/websdk/demosclass.js +122 -13
- package/build/websdk/demosclass.js.map +1 -1
- package/build/websdk/index.d.ts +3 -0
- package/build/websdk/index.js +3 -0
- package/build/websdk/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DEM/OS denomination constants.
|
|
3
|
+
*
|
|
4
|
+
* The Demos Network uses two denomination units:
|
|
5
|
+
* - DEM: human-readable, the "display" unit users think in.
|
|
6
|
+
* - OS: the smallest indivisible unit, used internally and on the wire.
|
|
7
|
+
*
|
|
8
|
+
* Conversion: 1 DEM = 10^9 OS (1 000 000 000 OS).
|
|
9
|
+
*
|
|
10
|
+
* All on-chain math is performed in OS as `bigint` to avoid floating-point
|
|
11
|
+
* precision loss. Wire format is the OS amount serialized as a decimal string.
|
|
12
|
+
*/
|
|
13
|
+
/** Number of decimal places between DEM and OS. */
|
|
14
|
+
export declare const OS_DECIMALS = 9;
|
|
15
|
+
/**
|
|
16
|
+
* Number of OS in 1 DEM, as a `bigint`.
|
|
17
|
+
*
|
|
18
|
+
* @example OS_PER_DEM === 1_000_000_000n
|
|
19
|
+
*/
|
|
20
|
+
export declare const OS_PER_DEM: bigint;
|
|
21
|
+
/** Minimum transferable amount: 1 OS. */
|
|
22
|
+
export declare const MIN_AMOUNT_OS = 1n;
|
|
23
|
+
/** Zero amount constant in OS. */
|
|
24
|
+
export declare const ZERO_OS = 0n;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DEM/OS denomination constants.
|
|
3
|
+
*
|
|
4
|
+
* The Demos Network uses two denomination units:
|
|
5
|
+
* - DEM: human-readable, the "display" unit users think in.
|
|
6
|
+
* - OS: the smallest indivisible unit, used internally and on the wire.
|
|
7
|
+
*
|
|
8
|
+
* Conversion: 1 DEM = 10^9 OS (1 000 000 000 OS).
|
|
9
|
+
*
|
|
10
|
+
* All on-chain math is performed in OS as `bigint` to avoid floating-point
|
|
11
|
+
* precision loss. Wire format is the OS amount serialized as a decimal string.
|
|
12
|
+
*/
|
|
13
|
+
// REVIEW: P0 foundation — denomination constants exported but not yet used by
|
|
14
|
+
// any existing SDK code. Adoption happens in later phases.
|
|
15
|
+
/** Number of decimal places between DEM and OS. */
|
|
16
|
+
export const OS_DECIMALS = 9;
|
|
17
|
+
/**
|
|
18
|
+
* Number of OS in 1 DEM, as a `bigint`.
|
|
19
|
+
*
|
|
20
|
+
* @example OS_PER_DEM === 1_000_000_000n
|
|
21
|
+
*/
|
|
22
|
+
export const OS_PER_DEM = BigInt(10 ** OS_DECIMALS); // 1_000_000_000n
|
|
23
|
+
/** Minimum transferable amount: 1 OS. */
|
|
24
|
+
export const MIN_AMOUNT_OS = 1n;
|
|
25
|
+
/** Zero amount constant in OS. */
|
|
26
|
+
export const ZERO_OS = 0n;
|
|
27
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/denomination/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,8EAA8E;AAC9E,2DAA2D;AAE3D,mDAAmD;AACnD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAA;AAE5B;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,EAAE,IAAI,WAAW,CAAC,CAAA,CAAC,iBAAiB;AAErE,yCAAyC;AACzC,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAA;AAE/B,kCAAkC;AAClC,MAAM,CAAC,MAAM,OAAO,GAAG,EAAE,CAAA"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DEM <-> OS conversion utilities.
|
|
3
|
+
*
|
|
4
|
+
* Internal representation: `bigint` (OS, smallest unit).
|
|
5
|
+
* Wire representation: decimal `string` (OS).
|
|
6
|
+
* Display representation: decimal `string` (DEM, human-readable).
|
|
7
|
+
*
|
|
8
|
+
* 1 DEM = 10^9 OS.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Convert a DEM amount (human-readable) to an OS amount (smallest unit).
|
|
12
|
+
*
|
|
13
|
+
* Accepts `number` or `string` for ergonomics. The result is always a `bigint`.
|
|
14
|
+
* Strings are preferred for high-precision input because JavaScript `number`
|
|
15
|
+
* cannot represent every 9-decimal value exactly.
|
|
16
|
+
*
|
|
17
|
+
* Throws if:
|
|
18
|
+
* - The input has more than {@link OS_DECIMALS} fractional digits.
|
|
19
|
+
* - The resulting amount is negative.
|
|
20
|
+
*
|
|
21
|
+
* @example demToOs(1) // => 1_000_000_000n
|
|
22
|
+
* @example demToOs("0.5") // => 500_000_000n
|
|
23
|
+
* @example demToOs(100) // => 100_000_000_000n
|
|
24
|
+
* @example demToOs("1.123456789")// => 1_123_456_789n
|
|
25
|
+
*
|
|
26
|
+
* @param dem - DEM amount as `number` or decimal `string`.
|
|
27
|
+
* @returns OS amount as `bigint`.
|
|
28
|
+
*/
|
|
29
|
+
export declare function demToOs(dem: number | string): bigint;
|
|
30
|
+
/**
|
|
31
|
+
* Convert an OS amount (smallest unit) to a DEM string (human-readable).
|
|
32
|
+
*
|
|
33
|
+
* Always returns a `string` to preserve precision. The result has exactly one
|
|
34
|
+
* decimal point, with trailing fractional zeros trimmed (but at least one
|
|
35
|
+
* fractional digit retained).
|
|
36
|
+
*
|
|
37
|
+
* Negative inputs are supported and produce a leading `-`.
|
|
38
|
+
*
|
|
39
|
+
* @example osToDem(1_000_000_000n) // => "1.0"
|
|
40
|
+
* @example osToDem(500_000_000n) // => "0.5"
|
|
41
|
+
* @example osToDem(1n) // => "0.000000001"
|
|
42
|
+
* @example osToDem(0n) // => "0.0"
|
|
43
|
+
*
|
|
44
|
+
* @param os - OS amount as `bigint`.
|
|
45
|
+
* @returns DEM amount as decimal `string`.
|
|
46
|
+
*/
|
|
47
|
+
export declare function osToDem(os: bigint): string;
|
|
48
|
+
/**
|
|
49
|
+
* Parse a wire-format OS string into a `bigint`.
|
|
50
|
+
*
|
|
51
|
+
* The wire format is always the OS amount as a base-10 integer string.
|
|
52
|
+
*
|
|
53
|
+
* @example parseOsString("1000000000") // => 1_000_000_000n
|
|
54
|
+
*
|
|
55
|
+
* @param osString - OS amount as a decimal integer string.
|
|
56
|
+
* @returns OS amount as `bigint`.
|
|
57
|
+
*/
|
|
58
|
+
export declare function parseOsString(osString: string): bigint;
|
|
59
|
+
/**
|
|
60
|
+
* Serialize a `bigint` OS amount to its wire-format string.
|
|
61
|
+
*
|
|
62
|
+
* @example toOsString(1_000_000_000n) // => "1000000000"
|
|
63
|
+
*
|
|
64
|
+
* @param os - OS amount as `bigint`.
|
|
65
|
+
* @returns OS amount as a decimal integer string.
|
|
66
|
+
*/
|
|
67
|
+
export declare function toOsString(os: bigint): string;
|
|
68
|
+
/**
|
|
69
|
+
* Format an OS amount as a human-readable DEM string with a unit suffix.
|
|
70
|
+
*
|
|
71
|
+
* Useful for log lines, error messages, and UI display.
|
|
72
|
+
*
|
|
73
|
+
* @example formatDem(1_000_000_000n) // => "1.0 DEM"
|
|
74
|
+
*
|
|
75
|
+
* @param os - OS amount as `bigint`.
|
|
76
|
+
* @returns Human-readable DEM string with " DEM" suffix.
|
|
77
|
+
*/
|
|
78
|
+
export declare function formatDem(os: bigint): string;
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DEM <-> OS conversion utilities.
|
|
3
|
+
*
|
|
4
|
+
* Internal representation: `bigint` (OS, smallest unit).
|
|
5
|
+
* Wire representation: decimal `string` (OS).
|
|
6
|
+
* Display representation: decimal `string` (DEM, human-readable).
|
|
7
|
+
*
|
|
8
|
+
* 1 DEM = 10^9 OS.
|
|
9
|
+
*/
|
|
10
|
+
import { OS_DECIMALS, ZERO_OS } from "./constants.js";
|
|
11
|
+
// REVIEW: P0 foundation — conversion utilities exported but not yet wired into
|
|
12
|
+
// any existing SDK code path. They are dormant until later migration phases.
|
|
13
|
+
/**
|
|
14
|
+
* Convert a DEM amount (human-readable) to an OS amount (smallest unit).
|
|
15
|
+
*
|
|
16
|
+
* Accepts `number` or `string` for ergonomics. The result is always a `bigint`.
|
|
17
|
+
* Strings are preferred for high-precision input because JavaScript `number`
|
|
18
|
+
* cannot represent every 9-decimal value exactly.
|
|
19
|
+
*
|
|
20
|
+
* Throws if:
|
|
21
|
+
* - The input has more than {@link OS_DECIMALS} fractional digits.
|
|
22
|
+
* - The resulting amount is negative.
|
|
23
|
+
*
|
|
24
|
+
* @example demToOs(1) // => 1_000_000_000n
|
|
25
|
+
* @example demToOs("0.5") // => 500_000_000n
|
|
26
|
+
* @example demToOs(100) // => 100_000_000_000n
|
|
27
|
+
* @example demToOs("1.123456789")// => 1_123_456_789n
|
|
28
|
+
*
|
|
29
|
+
* @param dem - DEM amount as `number` or decimal `string`.
|
|
30
|
+
* @returns OS amount as `bigint`.
|
|
31
|
+
*/
|
|
32
|
+
export function demToOs(dem) {
|
|
33
|
+
const str = typeof dem === "number" ? dem.toString() : dem;
|
|
34
|
+
// Split on decimal point. Missing fractional part defaults to "".
|
|
35
|
+
const [whole, frac = ""] = str.split(".");
|
|
36
|
+
if (frac.length > OS_DECIMALS) {
|
|
37
|
+
throw new Error(`DEM amount "${str}" exceeds maximum ${OS_DECIMALS} decimal places`);
|
|
38
|
+
}
|
|
39
|
+
// Pad fractional part to exactly OS_DECIMALS digits, then concatenate.
|
|
40
|
+
const paddedFrac = frac.padEnd(OS_DECIMALS, "0");
|
|
41
|
+
const combined = `${whole}${paddedFrac}`;
|
|
42
|
+
const result = BigInt(combined);
|
|
43
|
+
if (result < ZERO_OS) {
|
|
44
|
+
throw new Error(`Negative amounts not allowed: ${str}`);
|
|
45
|
+
}
|
|
46
|
+
return result;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Convert an OS amount (smallest unit) to a DEM string (human-readable).
|
|
50
|
+
*
|
|
51
|
+
* Always returns a `string` to preserve precision. The result has exactly one
|
|
52
|
+
* decimal point, with trailing fractional zeros trimmed (but at least one
|
|
53
|
+
* fractional digit retained).
|
|
54
|
+
*
|
|
55
|
+
* Negative inputs are supported and produce a leading `-`.
|
|
56
|
+
*
|
|
57
|
+
* @example osToDem(1_000_000_000n) // => "1.0"
|
|
58
|
+
* @example osToDem(500_000_000n) // => "0.5"
|
|
59
|
+
* @example osToDem(1n) // => "0.000000001"
|
|
60
|
+
* @example osToDem(0n) // => "0.0"
|
|
61
|
+
*
|
|
62
|
+
* @param os - OS amount as `bigint`.
|
|
63
|
+
* @returns DEM amount as decimal `string`.
|
|
64
|
+
*/
|
|
65
|
+
export function osToDem(os) {
|
|
66
|
+
const isNegative = os < ZERO_OS;
|
|
67
|
+
const abs = isNegative ? -os : os;
|
|
68
|
+
// Pad so we always have at least OS_DECIMALS+1 digits, ensuring the
|
|
69
|
+
// whole-number slice is non-empty for sub-1-DEM values.
|
|
70
|
+
const str = abs.toString().padStart(OS_DECIMALS + 1, "0");
|
|
71
|
+
const whole = str.slice(0, str.length - OS_DECIMALS);
|
|
72
|
+
const frac = str.slice(str.length - OS_DECIMALS);
|
|
73
|
+
// Trim trailing zeros from fractional part, but keep at least one digit.
|
|
74
|
+
const trimmedFrac = frac.replace(/0+$/, "") || "0";
|
|
75
|
+
return `${isNegative ? "-" : ""}${whole}.${trimmedFrac}`;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Parse a wire-format OS string into a `bigint`.
|
|
79
|
+
*
|
|
80
|
+
* The wire format is always the OS amount as a base-10 integer string.
|
|
81
|
+
*
|
|
82
|
+
* @example parseOsString("1000000000") // => 1_000_000_000n
|
|
83
|
+
*
|
|
84
|
+
* @param osString - OS amount as a decimal integer string.
|
|
85
|
+
* @returns OS amount as `bigint`.
|
|
86
|
+
*/
|
|
87
|
+
export function parseOsString(osString) {
|
|
88
|
+
return BigInt(osString);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Serialize a `bigint` OS amount to its wire-format string.
|
|
92
|
+
*
|
|
93
|
+
* @example toOsString(1_000_000_000n) // => "1000000000"
|
|
94
|
+
*
|
|
95
|
+
* @param os - OS amount as `bigint`.
|
|
96
|
+
* @returns OS amount as a decimal integer string.
|
|
97
|
+
*/
|
|
98
|
+
export function toOsString(os) {
|
|
99
|
+
return os.toString();
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Format an OS amount as a human-readable DEM string with a unit suffix.
|
|
103
|
+
*
|
|
104
|
+
* Useful for log lines, error messages, and UI display.
|
|
105
|
+
*
|
|
106
|
+
* @example formatDem(1_000_000_000n) // => "1.0 DEM"
|
|
107
|
+
*
|
|
108
|
+
* @param os - OS amount as `bigint`.
|
|
109
|
+
* @returns Human-readable DEM string with " DEM" suffix.
|
|
110
|
+
*/
|
|
111
|
+
export function formatDem(os) {
|
|
112
|
+
return `${osToDem(os)} DEM`;
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=conversion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversion.js","sourceRoot":"","sources":["../../../src/denomination/conversion.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAElD,+EAA+E;AAC/E,6EAA6E;AAE7E;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,OAAO,CAAC,GAAoB;IACxC,MAAM,GAAG,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;IAE1D,kEAAkE;IAClE,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAEzC,IAAI,IAAI,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACX,eAAe,GAAG,qBAAqB,WAAW,iBAAiB,CACtE,CAAA;IACL,CAAC;IAED,uEAAuE;IACvE,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAAA;IAChD,MAAM,QAAQ,GAAG,GAAG,KAAK,GAAG,UAAU,EAAE,CAAA;IAExC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC/B,IAAI,MAAM,GAAG,OAAO,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,EAAE,CAAC,CAAA;IAC3D,CAAC;IACD,OAAO,MAAM,CAAA;AACjB,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,OAAO,CAAC,EAAU;IAC9B,MAAM,UAAU,GAAG,EAAE,GAAG,OAAO,CAAA;IAC/B,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAEjC,oEAAoE;IACpE,wDAAwD;IACxD,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC,EAAE,GAAG,CAAC,CAAA;IAEzD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,CAAA;IACpD,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,CAAA;IAEhD,yEAAyE;IACzE,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,CAAA;IAElD,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,WAAW,EAAE,CAAA;AAC5D,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC1C,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAA;AAC3B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,EAAU;IACjC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAA;AACxB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,SAAS,CAAC,EAAU;IAChC,OAAO,GAAG,OAAO,CAAC,EAAE,CAAC,MAAM,CAAA;AAC/B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { describe, test, expect } from "bun:test";
|
|
2
|
+
import { demToOs, osToDem, parseOsString, toOsString, formatDem, } from "./conversion.js";
|
|
3
|
+
// REVIEW: P0 foundation — verbatim test suite from IDEA.md §0.5 plus three
|
|
4
|
+
// edge-case tests called out in the P0 task brief.
|
|
5
|
+
describe("demToOs", () => {
|
|
6
|
+
test("converts whole DEM to OS", () => {
|
|
7
|
+
expect(demToOs(1)).toBe(1000000000n);
|
|
8
|
+
expect(demToOs(100)).toBe(100000000000n);
|
|
9
|
+
expect(demToOs(0)).toBe(0n);
|
|
10
|
+
});
|
|
11
|
+
test("converts fractional DEM to OS", () => {
|
|
12
|
+
expect(demToOs("0.5")).toBe(500000000n);
|
|
13
|
+
expect(demToOs("0.000000001")).toBe(1n);
|
|
14
|
+
expect(demToOs("1.123456789")).toBe(1123456789n);
|
|
15
|
+
});
|
|
16
|
+
test("rejects too many decimals", () => {
|
|
17
|
+
expect(() => demToOs("0.0000000001")).toThrow("exceeds maximum 9 decimal places");
|
|
18
|
+
});
|
|
19
|
+
test("accepts string input", () => {
|
|
20
|
+
expect(demToOs("100")).toBe(100000000000n);
|
|
21
|
+
});
|
|
22
|
+
// Edge case: explicit zero string input.
|
|
23
|
+
test("converts the string \"0\" to 0n", () => {
|
|
24
|
+
expect(demToOs("0")).toBe(0n);
|
|
25
|
+
});
|
|
26
|
+
// Edge case: negative inputs are rejected with a clear message. The
|
|
27
|
+
// BigInt of "-1000000000" is < 0n, which trips the negativity guard.
|
|
28
|
+
test("rejects negative DEM input", () => {
|
|
29
|
+
expect(() => demToOs(-1)).toThrow("Negative amounts not allowed");
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
describe("osToDem", () => {
|
|
33
|
+
test("converts OS to DEM string", () => {
|
|
34
|
+
expect(osToDem(1000000000n)).toBe("1.0");
|
|
35
|
+
expect(osToDem(500000000n)).toBe("0.5");
|
|
36
|
+
expect(osToDem(1n)).toBe("0.000000001");
|
|
37
|
+
expect(osToDem(0n)).toBe("0.0");
|
|
38
|
+
});
|
|
39
|
+
test("handles large amounts", () => {
|
|
40
|
+
expect(osToDem(1000000000000000000n)).toBe("1000000000.0");
|
|
41
|
+
});
|
|
42
|
+
// Edge case: negative OS amounts produce a leading "-" and otherwise
|
|
43
|
+
// follow the same trimming rules as positive amounts.
|
|
44
|
+
test("handles negative OS amounts", () => {
|
|
45
|
+
expect(osToDem(-500000000n)).toBe("-0.5");
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
describe("wire format", () => {
|
|
49
|
+
test("round-trips through string serialization", () => {
|
|
50
|
+
const original = 123456789012n;
|
|
51
|
+
const wire = toOsString(original);
|
|
52
|
+
expect(parseOsString(wire)).toBe(original);
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
describe("formatDem", () => {
|
|
56
|
+
test("formats with unit", () => {
|
|
57
|
+
expect(formatDem(1000000000n)).toBe("1.0 DEM");
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
//# sourceMappingURL=conversion.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversion.test.js","sourceRoot":"","sources":["../../../src/denomination/conversion.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DEM/OS denomination utilities.
|
|
3
|
+
*
|
|
4
|
+
* Public surface for converting between human-readable DEM amounts and
|
|
5
|
+
* the internal/wire OS unit. See `./constants` and `./conversion` for details.
|
|
6
|
+
*
|
|
7
|
+
* 1 DEM = 10^9 OS.
|
|
8
|
+
*/
|
|
9
|
+
export { OS_DECIMALS, OS_PER_DEM, MIN_AMOUNT_OS, ZERO_OS, } from "./constants";
|
|
10
|
+
export { demToOs, osToDem, parseOsString, toOsString, formatDem, } from "./conversion";
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DEM/OS denomination utilities.
|
|
3
|
+
*
|
|
4
|
+
* Public surface for converting between human-readable DEM amounts and
|
|
5
|
+
* the internal/wire OS unit. See `./constants` and `./conversion` for details.
|
|
6
|
+
*
|
|
7
|
+
* 1 DEM = 10^9 OS.
|
|
8
|
+
*/
|
|
9
|
+
// REVIEW: P0 foundation — barrel export for the new denomination module.
|
|
10
|
+
export { OS_DECIMALS, OS_PER_DEM, MIN_AMOUNT_OS, ZERO_OS, } from "./constants.js";
|
|
11
|
+
export { demToOs, osToDem, parseOsString, toOsString, formatDem, } from "./conversion.js";
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/denomination/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,yEAAyE;AAEzE,OAAO,EACH,WAAW,EACX,UAAU,EACV,aAAa,EACb,OAAO,GACV,MAAM,aAAa,CAAA;AAEpB,OAAO,EACH,OAAO,EACP,OAAO,EACP,aAAa,EACb,UAAU,EACV,SAAS,GACZ,MAAM,cAAc,CAAA"}
|
package/build/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * as types from "./types";
|
|
2
2
|
export * as encryption from "./encryption";
|
|
3
3
|
export * as utils from "./utils";
|
|
4
|
+
export * as denomination from "./denomination";
|
|
4
5
|
export * as xmlocalsdk from "./multichain/localsdk";
|
|
5
6
|
export * as xmwebsdk from "./multichain/websdk";
|
|
6
7
|
export * as xmcore from "./multichain/core";
|
package/build/index.js
CHANGED
|
@@ -3,6 +3,9 @@ export * as types from "./types/index.js";
|
|
|
3
3
|
// Basic cryptographic and data manipulation functions
|
|
4
4
|
export * as encryption from "./encryption/index.js";
|
|
5
5
|
export * as utils from "./utils/index.js";
|
|
6
|
+
// REVIEW: P0 foundation — DEM/OS denomination utilities. Dormant exports;
|
|
7
|
+
// not yet consumed by any other SDK module.
|
|
8
|
+
export * as denomination from "./denomination/index.js";
|
|
6
9
|
// Specific features of the SDK
|
|
7
10
|
export * as xmlocalsdk from "./multichain/localsdk/index.js";
|
|
8
11
|
export * as xmwebsdk from "./multichain/websdk/index.js";
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,OAAO,KAAK,KAAK,MAAM,SAAS,CAAA;AAChC,sDAAsD;AACtD,OAAO,KAAK,UAAU,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,KAAK,MAAM,SAAS,CAAA;AAEhC,gCAAgC;AAChC,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAA;AACnD,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAA;AAC/C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA,CAAC,gCAAgC;AAE5E,OAAO,KAAK,MAAM,MAAM,UAAU,CAAA;AAClC,OAAO,KAAK,SAAS,MAAM,aAAa,CAAA;AAExC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAA;AAE9B,OAAO,KAAK,MAAM,MAAM,UAAU,CAAA;AAClC,OAAO,KAAK,WAAW,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAE1C,qCAAqC;AACrC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAA;AAElC,OAAO,KAAK,gBAAgB,MAAM,qBAAqB,CAAA;AAEvD,OAAO,KAAK,OAAO,MAAM,WAAW,CAAA;AAEpC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAA;AAElC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAA;AAE9B,OAAO,KAAK,SAAS,MAAM,aAAa,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,OAAO,KAAK,KAAK,MAAM,SAAS,CAAA;AAChC,sDAAsD;AACtD,OAAO,KAAK,UAAU,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,KAAK,MAAM,SAAS,CAAA;AAEhC,0EAA0E;AAC1E,4CAA4C;AAC5C,OAAO,KAAK,YAAY,MAAM,gBAAgB,CAAA;AAE9C,gCAAgC;AAChC,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAA;AACnD,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAA;AAC/C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA,CAAC,gCAAgC;AAE5E,OAAO,KAAK,MAAM,MAAM,UAAU,CAAA;AAClC,OAAO,KAAK,SAAS,MAAM,aAAa,CAAA;AAExC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAA;AAE9B,OAAO,KAAK,MAAM,MAAM,UAAU,CAAA;AAClC,OAAO,KAAK,WAAW,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAE1C,qCAAqC;AACrC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAA;AAElC,OAAO,KAAK,gBAAgB,MAAM,qBAAqB,CAAA;AAEvD,OAAO,KAAK,OAAO,MAAM,WAAW,CAAA;AAEpC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAA;AAElC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAA;AAE9B,OAAO,KAAK,SAAS,MAAM,aAAa,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Thrown by `DemosTransactions.broadcastAndWait` when the broadcast itself
|
|
3
|
+
* could not reach the node (no server contact at all). Distinct from
|
|
4
|
+
* `BroadcastTimeoutError`, which means the broadcast was accepted by the
|
|
5
|
+
* transport but the SDK never observed a terminal state within the timeout.
|
|
6
|
+
*
|
|
7
|
+
* Only raised when the caller opts in via `failFastOnBroadcastError: true`.
|
|
8
|
+
* The default behavior (lenient) preserves the previous "keep polling and
|
|
9
|
+
* eventually time out" semantics so existing consumers see no change.
|
|
10
|
+
*
|
|
11
|
+
* `cause` is the underlying transport error (typically an AxiosError) so
|
|
12
|
+
* callers can inspect `.code`, `.response`, etc.
|
|
13
|
+
*/
|
|
14
|
+
export declare class BroadcastFailedError extends Error {
|
|
15
|
+
readonly txHash: string;
|
|
16
|
+
readonly cause: unknown;
|
|
17
|
+
constructor(opts: {
|
|
18
|
+
txHash: string;
|
|
19
|
+
cause: unknown;
|
|
20
|
+
message?: string;
|
|
21
|
+
});
|
|
22
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Thrown by `DemosTransactions.broadcastAndWait` when the broadcast itself
|
|
3
|
+
* could not reach the node (no server contact at all). Distinct from
|
|
4
|
+
* `BroadcastTimeoutError`, which means the broadcast was accepted by the
|
|
5
|
+
* transport but the SDK never observed a terminal state within the timeout.
|
|
6
|
+
*
|
|
7
|
+
* Only raised when the caller opts in via `failFastOnBroadcastError: true`.
|
|
8
|
+
* The default behavior (lenient) preserves the previous "keep polling and
|
|
9
|
+
* eventually time out" semantics so existing consumers see no change.
|
|
10
|
+
*
|
|
11
|
+
* `cause` is the underlying transport error (typically an AxiosError) so
|
|
12
|
+
* callers can inspect `.code`, `.response`, etc.
|
|
13
|
+
*/
|
|
14
|
+
export class BroadcastFailedError extends Error {
|
|
15
|
+
constructor(opts) {
|
|
16
|
+
const causeMessage = opts.cause?.message ?? String(opts.cause ?? "unknown");
|
|
17
|
+
super(opts.message ??
|
|
18
|
+
`Broadcast failed before inclusion polling could begin (txHash=${opts.txHash}): ${causeMessage}`);
|
|
19
|
+
this.name = "BroadcastFailedError";
|
|
20
|
+
this.txHash = opts.txHash;
|
|
21
|
+
this.cause = opts.cause;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=BroadcastFailedError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BroadcastFailedError.js","sourceRoot":"","sources":["../../../src/websdk/BroadcastFailedError.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAI3C,YAAY,IAA0D;QAClE,MAAM,YAAY,GACb,IAAI,CAAC,KAAa,EAAE,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,CAAA;QACnE,KAAK,CACD,IAAI,CAAC,OAAO;YACR,iEAAiE,IAAI,CAAC,MAAM,MAAM,YAAY,EAAE,CACvG,CAAA;QACD,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAA;QAClC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QACzB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;IAC3B,CAAC;CACJ"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Thrown by `DemosTransactions.broadcastAndWait` when a broadcast tx has not
|
|
3
|
+
* been observed in a terminal state (`included` or `failed`) before the
|
|
4
|
+
* configured timeout elapses.
|
|
5
|
+
*
|
|
6
|
+
* The broadcast itself may have succeeded - this only indicates that the
|
|
7
|
+
* SDK gave up waiting. Callers can resume polling on their own using the
|
|
8
|
+
* preserved `txHash` and `lastSeenState`.
|
|
9
|
+
*/
|
|
10
|
+
export declare class BroadcastTimeoutError extends Error {
|
|
11
|
+
readonly txHash: string;
|
|
12
|
+
readonly lastSeenState: string;
|
|
13
|
+
readonly elapsedMs: number;
|
|
14
|
+
constructor(opts: {
|
|
15
|
+
txHash: string;
|
|
16
|
+
lastSeenState: string;
|
|
17
|
+
elapsedMs: number;
|
|
18
|
+
});
|
|
19
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Thrown by `DemosTransactions.broadcastAndWait` when a broadcast tx has not
|
|
3
|
+
* been observed in a terminal state (`included` or `failed`) before the
|
|
4
|
+
* configured timeout elapses.
|
|
5
|
+
*
|
|
6
|
+
* The broadcast itself may have succeeded - this only indicates that the
|
|
7
|
+
* SDK gave up waiting. Callers can resume polling on their own using the
|
|
8
|
+
* preserved `txHash` and `lastSeenState`.
|
|
9
|
+
*/
|
|
10
|
+
export class BroadcastTimeoutError extends Error {
|
|
11
|
+
constructor(opts) {
|
|
12
|
+
super(`Broadcast timed out after ${opts.elapsedMs}ms (txHash=${opts.txHash}, lastSeenState=${opts.lastSeenState})`);
|
|
13
|
+
this.name = "BroadcastTimeoutError";
|
|
14
|
+
this.txHash = opts.txHash;
|
|
15
|
+
this.lastSeenState = opts.lastSeenState;
|
|
16
|
+
this.elapsedMs = opts.elapsedMs;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=BroadcastTimeoutError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BroadcastTimeoutError.js","sourceRoot":"","sources":["../../../src/websdk/BroadcastTimeoutError.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAK5C,YAAY,IAIX;QACG,KAAK,CACD,6BAA6B,IAAI,CAAC,SAAS,cAAc,IAAI,CAAC,MAAM,mBAAmB,IAAI,CAAC,aAAa,GAAG,CAC/G,CAAA;QACD,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAA;QACnC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QACzB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAA;QACvC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;IACnC,CAAC;CACJ"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Demos } from "./demosclass";
|
|
2
2
|
import type { SigningAlgorithm, Transaction } from "../types";
|
|
3
3
|
import { IKeyPair } from "./types/KeyPair";
|
|
4
|
-
import { RPCResponseWithValidityData } from "../types/communication/rpc";
|
|
4
|
+
import { RPCResponse, RPCResponseWithValidityData } from "../types/communication/rpc";
|
|
5
5
|
export declare const DemosTransactions: {
|
|
6
6
|
empty: () => Transaction;
|
|
7
7
|
prepare: (data?: any) => Promise<Transaction>;
|
|
@@ -67,6 +67,47 @@ export declare const DemosTransactions: {
|
|
|
67
67
|
* @returns The response from the node
|
|
68
68
|
*/
|
|
69
69
|
broadcast: (validationData: RPCResponseWithValidityData, demos: Demos) => Promise<any>;
|
|
70
|
+
/**
|
|
71
|
+
* Broadcast a confirmed transaction and wait for inclusion.
|
|
72
|
+
*
|
|
73
|
+
* Polls the node's `getTransactionStatus` RPC until the tx is observed
|
|
74
|
+
* `included` or `failed`, or until `opts.timeoutMs` elapses (default 30s).
|
|
75
|
+
*
|
|
76
|
+
* Use this when you want a single call with a deterministic outcome.
|
|
77
|
+
* Use plain `broadcast()` when you want to handle async confirmation
|
|
78
|
+
* yourself.
|
|
79
|
+
*
|
|
80
|
+
* On timeout, throws `BroadcastTimeoutError` carrying the tx hash,
|
|
81
|
+
* the last observed state, and the elapsed time so the caller can
|
|
82
|
+
* resume polling.
|
|
83
|
+
*
|
|
84
|
+
* When `opts.failFastOnBroadcastError` is true, also throws
|
|
85
|
+
* `BroadcastFailedError` synchronously when the broadcast itself can't
|
|
86
|
+
* reach the node (e.g., ECONNREFUSED, ENOTFOUND). HTTP 5xx responses
|
|
87
|
+
* are NOT considered fail-fast cases - the server did answer, so the
|
|
88
|
+
* tx may still have landed and polling should run. Defaults to false
|
|
89
|
+
* for one release to preserve current callers' behavior.
|
|
90
|
+
*
|
|
91
|
+
* @param validationData - The validity data of the transaction (from `confirm`)
|
|
92
|
+
* @param demos - The demos instance
|
|
93
|
+
* @param opts.timeoutMs - Total time to wait for inclusion. Defaults to 30_000.
|
|
94
|
+
* @param opts.pollIntervalMs - Delay between status polls. Defaults to 500.
|
|
95
|
+
* @param opts.failFastOnBroadcastError - If true, throw `BroadcastFailedError`
|
|
96
|
+
* immediately when the broadcast can't contact the node. Defaults to false.
|
|
97
|
+
*
|
|
98
|
+
* @returns The original broadcast response and the terminal status.
|
|
99
|
+
*/
|
|
100
|
+
broadcastAndWait: (validationData: RPCResponseWithValidityData, demos: Demos, opts?: {
|
|
101
|
+
timeoutMs?: number;
|
|
102
|
+
pollIntervalMs?: number;
|
|
103
|
+
failFastOnBroadcastError?: boolean;
|
|
104
|
+
}) => Promise<{
|
|
105
|
+
broadcast: RPCResponse;
|
|
106
|
+
status: {
|
|
107
|
+
state: "included" | "failed";
|
|
108
|
+
blockNumber?: number;
|
|
109
|
+
};
|
|
110
|
+
}>;
|
|
70
111
|
/**
|
|
71
112
|
* Create a signed DEMOS transaction to store binary data on the blockchain.
|
|
72
113
|
* Data is stored in the sender's account.
|
|
@@ -5,6 +5,17 @@ import { _required as required } from "./utils/required.js";
|
|
|
5
5
|
import { Cryptography } from "../encryption/index.js";
|
|
6
6
|
import { uint8ArrayToHex } from "../encryption/unifiedCrypto.js";
|
|
7
7
|
import { Enigma } from "../encryption/PQC/enigma.js";
|
|
8
|
+
import { BroadcastTimeoutError } from "./BroadcastTimeoutError.js";
|
|
9
|
+
import { BroadcastFailedError } from "./BroadcastFailedError.js";
|
|
10
|
+
// Connection-error codes indicating the request never reached the node.
|
|
11
|
+
// HTTP 5xx is intentionally NOT in this set: a 5xx means the server did
|
|
12
|
+
// answer, so the broadcast may have landed even if the response was lost.
|
|
13
|
+
const NO_SERVER_CONTACT_CODES = new Set([
|
|
14
|
+
"ECONNREFUSED",
|
|
15
|
+
"ENOTFOUND",
|
|
16
|
+
"ECONNRESET",
|
|
17
|
+
"ETIMEDOUT",
|
|
18
|
+
]);
|
|
8
19
|
export const DemosTransactions = {
|
|
9
20
|
// REVIEW All this part
|
|
10
21
|
// NOTE A courtesy to get a skeleton of transactions
|
|
@@ -178,6 +189,116 @@ export const DemosTransactions = {
|
|
|
178
189
|
return res;
|
|
179
190
|
}
|
|
180
191
|
},
|
|
192
|
+
/**
|
|
193
|
+
* Broadcast a confirmed transaction and wait for inclusion.
|
|
194
|
+
*
|
|
195
|
+
* Polls the node's `getTransactionStatus` RPC until the tx is observed
|
|
196
|
+
* `included` or `failed`, or until `opts.timeoutMs` elapses (default 30s).
|
|
197
|
+
*
|
|
198
|
+
* Use this when you want a single call with a deterministic outcome.
|
|
199
|
+
* Use plain `broadcast()` when you want to handle async confirmation
|
|
200
|
+
* yourself.
|
|
201
|
+
*
|
|
202
|
+
* On timeout, throws `BroadcastTimeoutError` carrying the tx hash,
|
|
203
|
+
* the last observed state, and the elapsed time so the caller can
|
|
204
|
+
* resume polling.
|
|
205
|
+
*
|
|
206
|
+
* When `opts.failFastOnBroadcastError` is true, also throws
|
|
207
|
+
* `BroadcastFailedError` synchronously when the broadcast itself can't
|
|
208
|
+
* reach the node (e.g., ECONNREFUSED, ENOTFOUND). HTTP 5xx responses
|
|
209
|
+
* are NOT considered fail-fast cases - the server did answer, so the
|
|
210
|
+
* tx may still have landed and polling should run. Defaults to false
|
|
211
|
+
* for one release to preserve current callers' behavior.
|
|
212
|
+
*
|
|
213
|
+
* @param validationData - The validity data of the transaction (from `confirm`)
|
|
214
|
+
* @param demos - The demos instance
|
|
215
|
+
* @param opts.timeoutMs - Total time to wait for inclusion. Defaults to 30_000.
|
|
216
|
+
* @param opts.pollIntervalMs - Delay between status polls. Defaults to 500.
|
|
217
|
+
* @param opts.failFastOnBroadcastError - If true, throw `BroadcastFailedError`
|
|
218
|
+
* immediately when the broadcast can't contact the node. Defaults to false.
|
|
219
|
+
*
|
|
220
|
+
* @returns The original broadcast response and the terminal status.
|
|
221
|
+
*/
|
|
222
|
+
broadcastAndWait: async function (validationData, demos, opts) {
|
|
223
|
+
const timeout = opts?.timeoutMs ?? 30000;
|
|
224
|
+
const pollInterval = opts?.pollIntervalMs ?? 500;
|
|
225
|
+
const failFast = opts?.failFastOnBroadcastError ?? false;
|
|
226
|
+
// Extract the tx hash from the validity data before broadcasting so
|
|
227
|
+
// we can include it in any timeout error.
|
|
228
|
+
const txHash = validationData?.response?.data?.transaction?.hash;
|
|
229
|
+
required(txHash, "Could not find transaction hash on validationData");
|
|
230
|
+
// 1. Broadcast first - reuses existing semantics so any failure here
|
|
231
|
+
// surfaces exactly the same way as a plain broadcast() call.
|
|
232
|
+
const broadcastRes = await DemosTransactions.broadcast(validationData, demos);
|
|
233
|
+
// 1a. (Opt-in) If the broadcast never reached the node, surface that
|
|
234
|
+
// immediately rather than waiting out the full timeout. We detect
|
|
235
|
+
// this via the back-compat envelope produced by `demos.call` on
|
|
236
|
+
// transport failure: { result: 500, response: <error>, require_reply, ... }.
|
|
237
|
+
// Only "no server contact" codes are fail-fast; HTTP 5xx means the
|
|
238
|
+
// server did answer and the tx may still have landed, so polling runs.
|
|
239
|
+
if (failFast) {
|
|
240
|
+
const isTransportFailureEnvelope = broadcastRes &&
|
|
241
|
+
typeof broadcastRes === "object" &&
|
|
242
|
+
broadcastRes.result === 500 &&
|
|
243
|
+
"require_reply" in broadcastRes;
|
|
244
|
+
if (isTransportFailureEnvelope) {
|
|
245
|
+
const cause = broadcastRes.response;
|
|
246
|
+
const code = cause?.code;
|
|
247
|
+
const sawServer = typeof cause?.response?.status === "number";
|
|
248
|
+
const noServerContact = !sawServer &&
|
|
249
|
+
typeof code === "string" &&
|
|
250
|
+
NO_SERVER_CONTACT_CODES.has(code);
|
|
251
|
+
if (noServerContact) {
|
|
252
|
+
throw new BroadcastFailedError({ txHash, cause });
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
const start = Date.now();
|
|
257
|
+
let attempt = 0;
|
|
258
|
+
let lastState = "unknown";
|
|
259
|
+
// 2. Poll until terminal state or timeout. Mirrors KeyServerClient's
|
|
260
|
+
// pollOAuth pattern: skip the initial sleep on the first attempt
|
|
261
|
+
// so a tx that lands instantly returns quickly.
|
|
262
|
+
while (Date.now() - start < timeout) {
|
|
263
|
+
attempt++;
|
|
264
|
+
if (attempt > 1) {
|
|
265
|
+
await new Promise(r => setTimeout(r, pollInterval));
|
|
266
|
+
}
|
|
267
|
+
const statusRes = await demos.call("nodeCall", "", { hash: txHash }, "getTransactionStatus");
|
|
268
|
+
// `Demos.call("nodeCall", ...)` normally returns the inner
|
|
269
|
+
// `response` payload directly (e.g. `{ state, blockNumber? }`).
|
|
270
|
+
// On a terminal transport failure it returns the back-compat
|
|
271
|
+
// envelope `{ result: 500, response: <error> }`. Tolerate that
|
|
272
|
+
// as a transient hiccup and keep polling - we don't want a
|
|
273
|
+
// single 5xx blip to break the wait.
|
|
274
|
+
const isTransportFailureEnvelope = statusRes &&
|
|
275
|
+
typeof statusRes === "object" &&
|
|
276
|
+
"result" in statusRes &&
|
|
277
|
+
statusRes.result === 500 &&
|
|
278
|
+
"require_reply" in statusRes;
|
|
279
|
+
if (isTransportFailureEnvelope) {
|
|
280
|
+
continue;
|
|
281
|
+
}
|
|
282
|
+
const state = statusRes && typeof statusRes === "object"
|
|
283
|
+
? statusRes.state
|
|
284
|
+
: undefined;
|
|
285
|
+
if (typeof state === "string") {
|
|
286
|
+
lastState = state;
|
|
287
|
+
if (state === "included" || state === "failed") {
|
|
288
|
+
const blockNumber = statusRes.blockNumber;
|
|
289
|
+
return {
|
|
290
|
+
broadcast: broadcastRes,
|
|
291
|
+
status: { state, blockNumber },
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
throw new BroadcastTimeoutError({
|
|
297
|
+
txHash,
|
|
298
|
+
lastSeenState: lastState,
|
|
299
|
+
elapsedMs: Date.now() - start,
|
|
300
|
+
});
|
|
301
|
+
},
|
|
181
302
|
/**
|
|
182
303
|
* Create a signed DEMOS transaction to store binary data on the blockchain.
|
|
183
304
|
* Data is stored in the sender's account.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DemosTransactions.js","sourceRoot":"","sources":["../../../src/websdk/DemosTransactions.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,KAAK,SAAS,MAAM,mBAAmB,CAAA;AAK9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,SAAS,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"DemosTransactions.js","sourceRoot":"","sources":["../../../src/websdk/DemosTransactions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Thrown by the SDK transport layer when an HTTP request to the Demos node
|
|
3
|
+
* exhausts its retry budget. This is intentionally small and local - we
|
|
4
|
+
* don't want a hierarchy of transport errors at this layer.
|
|
5
|
+
*
|
|
6
|
+
* `attempts` is the total number of attempts that were made (including the
|
|
7
|
+
* final failing one). `cause` is the underlying error (typically an
|
|
8
|
+
* AxiosError) so callers can inspect `.response`, `.code`, etc.
|
|
9
|
+
*/
|
|
10
|
+
export declare class TransportError extends Error {
|
|
11
|
+
readonly attempts: number;
|
|
12
|
+
readonly cause: unknown;
|
|
13
|
+
constructor(message: string, opts: {
|
|
14
|
+
cause: unknown;
|
|
15
|
+
attempts: number;
|
|
16
|
+
});
|
|
17
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Thrown by the SDK transport layer when an HTTP request to the Demos node
|
|
3
|
+
* exhausts its retry budget. This is intentionally small and local - we
|
|
4
|
+
* don't want a hierarchy of transport errors at this layer.
|
|
5
|
+
*
|
|
6
|
+
* `attempts` is the total number of attempts that were made (including the
|
|
7
|
+
* final failing one). `cause` is the underlying error (typically an
|
|
8
|
+
* AxiosError) so callers can inspect `.response`, `.code`, etc.
|
|
9
|
+
*/
|
|
10
|
+
export class TransportError extends Error {
|
|
11
|
+
constructor(message, opts) {
|
|
12
|
+
super(message);
|
|
13
|
+
this.name = "TransportError";
|
|
14
|
+
this.attempts = opts.attempts;
|
|
15
|
+
this.cause = opts.cause;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=TransportError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransportError.js","sourceRoot":"","sources":["../../../src/websdk/TransportError.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK;IAIrC,YAAY,OAAe,EAAE,IAA0C;QACnE,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAA;QAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;IAC3B,CAAC;CACJ"}
|
|
@@ -145,6 +145,28 @@ export declare class Demos {
|
|
|
145
145
|
* @returns The response from the node
|
|
146
146
|
*/
|
|
147
147
|
broadcast(validationData: RPCResponseWithValidityData): Promise<any>;
|
|
148
|
+
/**
|
|
149
|
+
* Broadcast a confirmed transaction and wait until it lands on chain
|
|
150
|
+
* (or fails) by polling the node's `getTransactionStatus` RPC.
|
|
151
|
+
*
|
|
152
|
+
* Throws `BroadcastTimeoutError` if no terminal state is observed
|
|
153
|
+
* before the timeout elapses. Use plain `broadcast()` if you want to
|
|
154
|
+
* handle async confirmation yourself.
|
|
155
|
+
*
|
|
156
|
+
* @param validationData - The validity data of the transaction
|
|
157
|
+
* @param opts.timeoutMs - Total time to wait. Defaults to 30_000.
|
|
158
|
+
* @param opts.pollIntervalMs - Delay between polls. Defaults to 500.
|
|
159
|
+
*/
|
|
160
|
+
broadcastAndWait(validationData: RPCResponseWithValidityData, opts?: {
|
|
161
|
+
timeoutMs?: number;
|
|
162
|
+
pollIntervalMs?: number;
|
|
163
|
+
}): Promise<{
|
|
164
|
+
broadcast: RPCResponse;
|
|
165
|
+
status: {
|
|
166
|
+
state: "included" | "failed";
|
|
167
|
+
blockNumber?: number;
|
|
168
|
+
};
|
|
169
|
+
}>;
|
|
148
170
|
/**
|
|
149
171
|
* Signs a transaction.
|
|
150
172
|
*
|
|
@@ -195,6 +217,25 @@ export declare class Demos {
|
|
|
195
217
|
* @returns The updated transaction with the fee applied.
|
|
196
218
|
*/
|
|
197
219
|
private _calculateAndApplyGasFee;
|
|
220
|
+
/**
|
|
221
|
+
* Single transport wrapper for axios.post against the Demos RPC node.
|
|
222
|
+
*
|
|
223
|
+
* Retries:
|
|
224
|
+
* - connection-level errors: ECONNRESET, ECONNREFUSED, ETIMEDOUT, ENOTFOUND
|
|
225
|
+
* - HTTP 502, 503, 504
|
|
226
|
+
* Never retries on 4xx (those are client errors, including the node-side
|
|
227
|
+
* 404 "Unknown message" introduced by Phase 1 item 1).
|
|
228
|
+
*
|
|
229
|
+
* Backoff is exponential (baseSleepMs * 2^attempt), capped at 8s. A
|
|
230
|
+
* Retry-After response header (numeric seconds, or HTTP-date) overrides
|
|
231
|
+
* the computed backoff for that attempt.
|
|
232
|
+
*
|
|
233
|
+
* On terminal failure, throws a TransportError carrying the underlying
|
|
234
|
+
* cause and the total number of attempts. Callers that need the legacy
|
|
235
|
+
* "never throws, returns {result: 500, response: error}" behavior should
|
|
236
|
+
* wrap this in their own try/catch (see `call` below).
|
|
237
|
+
*/
|
|
238
|
+
private _doPost;
|
|
198
239
|
rpcCall(request: RPCRequest, isAuthenticated?: boolean, retries?: number, sleepTime?: number, allowedErrorCodes?: number[]): Promise<RPCResponse>;
|
|
199
240
|
call(method: any, message: any, data?: any, extra?: any, sender?: any, receiver?: any): Promise<any>;
|
|
200
241
|
/**
|
|
@@ -394,6 +435,17 @@ export declare class Demos {
|
|
|
394
435
|
}>;
|
|
395
436
|
confirm: (transaction: Transaction, demos: Demos) => Promise<RPCResponseWithValidityData>;
|
|
396
437
|
broadcast: (validationData: RPCResponseWithValidityData, demos: Demos) => Promise<any>;
|
|
438
|
+
broadcastAndWait: (validationData: RPCResponseWithValidityData, demos: Demos, opts?: {
|
|
439
|
+
timeoutMs?: number;
|
|
440
|
+
pollIntervalMs?: number;
|
|
441
|
+
failFastOnBroadcastError?: boolean;
|
|
442
|
+
}) => Promise<{
|
|
443
|
+
broadcast: RPCResponse;
|
|
444
|
+
status: {
|
|
445
|
+
state: "included" | "failed";
|
|
446
|
+
blockNumber?: number;
|
|
447
|
+
};
|
|
448
|
+
}>;
|
|
397
449
|
store(bytes: Uint8Array, demos: Demos): Promise<Transaction>;
|
|
398
450
|
createL2PSHashUpdate(l2psUid: string, consolidatedHash: string, transactionCount: number, demos: Demos): Promise<Transaction>;
|
|
399
451
|
};
|
|
@@ -413,6 +465,17 @@ export declare class Demos {
|
|
|
413
465
|
}>;
|
|
414
466
|
confirm: (transaction: Transaction, demos: Demos) => Promise<RPCResponseWithValidityData>;
|
|
415
467
|
broadcast: (validationData: RPCResponseWithValidityData, demos: Demos) => Promise<any>;
|
|
468
|
+
broadcastAndWait: (validationData: RPCResponseWithValidityData, demos: Demos, opts?: {
|
|
469
|
+
timeoutMs?: number;
|
|
470
|
+
pollIntervalMs?: number;
|
|
471
|
+
failFastOnBroadcastError?: boolean;
|
|
472
|
+
}) => Promise<{
|
|
473
|
+
broadcast: RPCResponse;
|
|
474
|
+
status: {
|
|
475
|
+
state: "included" | "failed";
|
|
476
|
+
blockNumber?: number;
|
|
477
|
+
};
|
|
478
|
+
}>;
|
|
416
479
|
store(bytes: Uint8Array, demos: Demos): Promise<Transaction>;
|
|
417
480
|
createL2PSHashUpdate(l2psUid: string, consolidatedHash: string, transactionCount: number, demos: Demos): Promise<Transaction>;
|
|
418
481
|
};
|
|
@@ -432,6 +495,17 @@ export declare class Demos {
|
|
|
432
495
|
}>;
|
|
433
496
|
confirm: (transaction: Transaction, demos: Demos) => Promise<RPCResponseWithValidityData>;
|
|
434
497
|
broadcast: (validationData: RPCResponseWithValidityData, demos: Demos) => Promise<any>;
|
|
498
|
+
broadcastAndWait: (validationData: RPCResponseWithValidityData, demos: Demos, opts?: {
|
|
499
|
+
timeoutMs?: number;
|
|
500
|
+
pollIntervalMs?: number;
|
|
501
|
+
failFastOnBroadcastError?: boolean;
|
|
502
|
+
}) => Promise<{
|
|
503
|
+
broadcast: RPCResponse;
|
|
504
|
+
status: {
|
|
505
|
+
state: "included" | "failed";
|
|
506
|
+
blockNumber?: number;
|
|
507
|
+
};
|
|
508
|
+
}>;
|
|
435
509
|
store(bytes: Uint8Array, demos: Demos): Promise<Transaction>;
|
|
436
510
|
createL2PSHashUpdate(l2psUid: string, consolidatedHash: string, transactionCount: number, demos: Demos): Promise<Transaction>;
|
|
437
511
|
};
|
|
@@ -5,6 +5,7 @@ This library contains all the functions that are used to interact with the demos
|
|
|
5
5
|
/* eslint-disable no-undef */
|
|
6
6
|
import axios from "axios";
|
|
7
7
|
import * as skeletons from "./utils/skeletons.js";
|
|
8
|
+
import { TransportError } from "./TransportError.js";
|
|
8
9
|
// NOTE Including custom libraries from Demos
|
|
9
10
|
import { DemosTransactions } from "./DemosTransactions.js";
|
|
10
11
|
import { DemosWebAuth } from "./DemosWebAuth.js";
|
|
@@ -350,6 +351,21 @@ export class Demos {
|
|
|
350
351
|
broadcast(validationData) {
|
|
351
352
|
return DemosTransactions.broadcast(validationData, this);
|
|
352
353
|
}
|
|
354
|
+
/**
|
|
355
|
+
* Broadcast a confirmed transaction and wait until it lands on chain
|
|
356
|
+
* (or fails) by polling the node's `getTransactionStatus` RPC.
|
|
357
|
+
*
|
|
358
|
+
* Throws `BroadcastTimeoutError` if no terminal state is observed
|
|
359
|
+
* before the timeout elapses. Use plain `broadcast()` if you want to
|
|
360
|
+
* handle async confirmation yourself.
|
|
361
|
+
*
|
|
362
|
+
* @param validationData - The validity data of the transaction
|
|
363
|
+
* @param opts.timeoutMs - Total time to wait. Defaults to 30_000.
|
|
364
|
+
* @param opts.pollIntervalMs - Delay between polls. Defaults to 500.
|
|
365
|
+
*/
|
|
366
|
+
broadcastAndWait(validationData, opts) {
|
|
367
|
+
return DemosTransactions.broadcastAndWait(validationData, this, opts);
|
|
368
|
+
}
|
|
353
369
|
/**
|
|
354
370
|
* Signs a transaction.
|
|
355
371
|
*
|
|
@@ -552,6 +568,85 @@ export class Demos {
|
|
|
552
568
|
return raw_tx;
|
|
553
569
|
}
|
|
554
570
|
// L2PS calls are defined here
|
|
571
|
+
/**
|
|
572
|
+
* Single transport wrapper for axios.post against the Demos RPC node.
|
|
573
|
+
*
|
|
574
|
+
* Retries:
|
|
575
|
+
* - connection-level errors: ECONNRESET, ECONNREFUSED, ETIMEDOUT, ENOTFOUND
|
|
576
|
+
* - HTTP 502, 503, 504
|
|
577
|
+
* Never retries on 4xx (those are client errors, including the node-side
|
|
578
|
+
* 404 "Unknown message" introduced by Phase 1 item 1).
|
|
579
|
+
*
|
|
580
|
+
* Backoff is exponential (baseSleepMs * 2^attempt), capped at 8s. A
|
|
581
|
+
* Retry-After response header (numeric seconds, or HTTP-date) overrides
|
|
582
|
+
* the computed backoff for that attempt.
|
|
583
|
+
*
|
|
584
|
+
* On terminal failure, throws a TransportError carrying the underlying
|
|
585
|
+
* cause and the total number of attempts. Callers that need the legacy
|
|
586
|
+
* "never throws, returns {result: 500, response: error}" behavior should
|
|
587
|
+
* wrap this in their own try/catch (see `call` below).
|
|
588
|
+
*/
|
|
589
|
+
async _doPost(url, request, headers, opts = {}) {
|
|
590
|
+
const maxRetries = opts.retries ?? 4;
|
|
591
|
+
const baseSleepMs = opts.baseSleepMs ?? 250;
|
|
592
|
+
const RETRYABLE_CODES = new Set([
|
|
593
|
+
"ECONNRESET",
|
|
594
|
+
"ECONNREFUSED",
|
|
595
|
+
"ETIMEDOUT",
|
|
596
|
+
"ENOTFOUND",
|
|
597
|
+
]);
|
|
598
|
+
const RETRYABLE_STATUSES = new Set([502, 503, 504]);
|
|
599
|
+
const MAX_BACKOFF_MS = 8000;
|
|
600
|
+
let lastError = null;
|
|
601
|
+
let attempt = 0;
|
|
602
|
+
// attempt 0 is the initial try; we then retry up to maxRetries times.
|
|
603
|
+
for (; attempt <= maxRetries; attempt++) {
|
|
604
|
+
try {
|
|
605
|
+
const response = await axios.post(url, request, { headers });
|
|
606
|
+
return { data: response.data };
|
|
607
|
+
}
|
|
608
|
+
catch (error) {
|
|
609
|
+
lastError = error;
|
|
610
|
+
const code = error?.code;
|
|
611
|
+
const status = error?.response?.status;
|
|
612
|
+
const isConnError = typeof code === "string" && RETRYABLE_CODES.has(code);
|
|
613
|
+
const isRetryableStatus = typeof status === "number" &&
|
|
614
|
+
RETRYABLE_STATUSES.has(status);
|
|
615
|
+
const shouldRetry = (isConnError || isRetryableStatus) && attempt < maxRetries;
|
|
616
|
+
if (!shouldRetry) {
|
|
617
|
+
break;
|
|
618
|
+
}
|
|
619
|
+
// Honor Retry-After if present. Conservative parsing: numeric
|
|
620
|
+
// seconds first, then HTTP-date via Date.parse, else fallback
|
|
621
|
+
// to exponential backoff. All branches are clamped to
|
|
622
|
+
// MAX_BACKOFF_MS so a misbehaving node can't stall a single
|
|
623
|
+
// request indefinitely.
|
|
624
|
+
let waitMs = Math.min(baseSleepMs * Math.pow(2, attempt), MAX_BACKOFF_MS);
|
|
625
|
+
const retryAfter = error?.response?.headers?.["retry-after"];
|
|
626
|
+
if (typeof retryAfter === "string" && retryAfter.length > 0) {
|
|
627
|
+
if (/^\d+$/.test(retryAfter.trim())) {
|
|
628
|
+
waitMs = Math.min(parseInt(retryAfter, 10) * 1000, MAX_BACKOFF_MS);
|
|
629
|
+
}
|
|
630
|
+
else {
|
|
631
|
+
const parsed = Date.parse(retryAfter);
|
|
632
|
+
if (!Number.isNaN(parsed)) {
|
|
633
|
+
waitMs = Math.min(Math.max(0, parsed - Date.now()), MAX_BACKOFF_MS);
|
|
634
|
+
}
|
|
635
|
+
}
|
|
636
|
+
}
|
|
637
|
+
await sleep(waitMs);
|
|
638
|
+
}
|
|
639
|
+
}
|
|
640
|
+
// attempt is incremented past the last successful iteration on natural
|
|
641
|
+
// loop exit, and equals the break-point on early exit. Clamp to the
|
|
642
|
+
// budget so the reported count never exceeds maxRetries+1.
|
|
643
|
+
const attempts = Math.min(attempt + 1, maxRetries + 1);
|
|
644
|
+
const reason = lastError?.code ??
|
|
645
|
+
lastError?.response?.status ??
|
|
646
|
+
lastError?.message ??
|
|
647
|
+
"unknown";
|
|
648
|
+
throw new TransportError(`Demos RPC POST to ${url} failed after ${attempts} attempt(s): ${reason}`, { cause: lastError, attempts });
|
|
649
|
+
}
|
|
555
650
|
async rpcCall(request, isAuthenticated = false, retries = 0, sleepTime = 250, allowedErrorCodes = []) {
|
|
556
651
|
let publicKey = "";
|
|
557
652
|
let signature = "";
|
|
@@ -560,14 +655,21 @@ export class Demos {
|
|
|
560
655
|
const _signature = await this.crypto.sign(this.algorithm, new TextEncoder().encode(publicKey));
|
|
561
656
|
signature = uint8ArrayToHex(_signature.signature);
|
|
562
657
|
}
|
|
658
|
+
const headers = {
|
|
659
|
+
"Content-Type": "application/json",
|
|
660
|
+
identity: this.algorithm + ":" + publicKey,
|
|
661
|
+
signature: signature,
|
|
662
|
+
};
|
|
663
|
+
// The legacy `retries`/`sleepTime` knobs are application-level: they
|
|
664
|
+
// retry on non-200 RPC *results*. _doPost's retries are a separate
|
|
665
|
+
// transport-level budget covering connection errors and 5xx. We do
|
|
666
|
+
// NOT forward `retries` into _doPost - forwarding would (a) disable
|
|
667
|
+
// transport retries entirely when callers pass the default of 0, and
|
|
668
|
+
// (b) couple the two layers, multiplying total attempts. _doPost
|
|
669
|
+
// keeps its own internal default; baseSleepMs is shared because both
|
|
670
|
+
// layers want the same backoff base.
|
|
563
671
|
try {
|
|
564
|
-
const response = await
|
|
565
|
-
headers: {
|
|
566
|
-
"Content-Type": "application/json",
|
|
567
|
-
identity: this.algorithm + ":" + publicKey,
|
|
568
|
-
signature: signature,
|
|
569
|
-
},
|
|
570
|
-
});
|
|
672
|
+
const response = await this._doPost(this.rpc_url, request, headers, { baseSleepMs: sleepTime });
|
|
571
673
|
if (response.data.result == 200 ||
|
|
572
674
|
allowedErrorCodes.includes(response.data.result)) {
|
|
573
675
|
return response.data;
|
|
@@ -579,6 +681,9 @@ export class Demos {
|
|
|
579
681
|
return response.data;
|
|
580
682
|
}
|
|
581
683
|
catch (error) {
|
|
684
|
+
// Preserve legacy not-throwing behavior on terminal transport
|
|
685
|
+
// failure. Callers that want the typed TransportError can use
|
|
686
|
+
// _doPost directly.
|
|
582
687
|
console.error(error);
|
|
583
688
|
return {
|
|
584
689
|
result: 500,
|
|
@@ -623,13 +728,17 @@ export class Demos {
|
|
|
623
728
|
pubkey_string = this.algorithm + ":" + publicKey;
|
|
624
729
|
pubkey_signature = uint8ArrayToHex(signature.signature);
|
|
625
730
|
}
|
|
731
|
+
// BACK-COMPAT: existing callers (DemosTransactions.confirm/broadcast,
|
|
732
|
+
// Web2Calls, contract helpers) rely on `call` never throwing - on
|
|
733
|
+
// failure they expect `{result: 500, response: <error>}`. We keep that
|
|
734
|
+
// contract here by catching TransportError (and any unexpected error)
|
|
735
|
+
// from _doPost. Callers that want the typed TransportError can use
|
|
736
|
+
// _doPost directly.
|
|
626
737
|
try {
|
|
627
|
-
const response = await
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
signature: pubkey_signature,
|
|
632
|
-
},
|
|
738
|
+
const response = await this._doPost(this.rpc_url, request, {
|
|
739
|
+
"Content-Type": "application/json",
|
|
740
|
+
identity: pubkey_string,
|
|
741
|
+
signature: pubkey_signature,
|
|
633
742
|
});
|
|
634
743
|
if (method == "nodeCall") {
|
|
635
744
|
return response.data.response;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"demosclass.js","sourceRoot":"","sources":["../../../src/websdk/demosclass.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"demosclass.js","sourceRoot":"","sources":["../../../src/websdk/demosclass.ts"],"names":[],"mappings":"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"}
|
package/build/websdk/index.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
export { demos } from "./demos";
|
|
2
2
|
export { Demos } from "./demosclass";
|
|
3
3
|
export { DemosTransactions } from "./DemosTransactions";
|
|
4
|
+
export { TransportError } from "./TransportError";
|
|
5
|
+
export { BroadcastTimeoutError } from "./BroadcastTimeoutError";
|
|
6
|
+
export { BroadcastFailedError } from "./BroadcastFailedError";
|
|
4
7
|
export { RSA } from "./rsa";
|
|
5
8
|
export { DemosWebAuth } from "./DemosWebAuth";
|
|
6
9
|
export { XMTransactions, prepareXMPayload, prepareXMScript, } from "./XMTransactions";
|
package/build/websdk/index.js
CHANGED
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
export { demos } from "./demos.js";
|
|
3
3
|
export { Demos } from "./demosclass.js";
|
|
4
4
|
export { DemosTransactions } from "./DemosTransactions.js";
|
|
5
|
+
export { TransportError } from "./TransportError.js";
|
|
6
|
+
export { BroadcastTimeoutError } from "./BroadcastTimeoutError.js";
|
|
7
|
+
export { BroadcastFailedError } from "./BroadcastFailedError.js";
|
|
5
8
|
export { RSA } from "./rsa.js";
|
|
6
9
|
export { DemosWebAuth } from "./DemosWebAuth.js";
|
|
7
10
|
export { XMTransactions, prepareXMPayload, prepareXMScript, } from "./XMTransactions.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/websdk/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/websdk/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE7D,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,OAAO,EACH,cAAc,EACd,gBAAgB,EAChB,eAAe,GAClB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AACvE,QAAQ;AACR,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACtE,OAAO,KAAK,SAAS,MAAM,mBAAmB,CAAA;AAE9C,2CAA2C;AAC3C,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAE9E,SAAS;AACT,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAEtC,yCAAyC;AACzC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA"}
|
package/package.json
CHANGED