@bsv/sdk 1.0.33 → 1.0.34

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 (130) hide show
  1. package/README.md +1 -3
  2. package/dist/cjs/mod.js +1 -0
  3. package/dist/cjs/mod.js.map +1 -1
  4. package/dist/cjs/package.json +1 -1
  5. package/dist/cjs/src/transaction/Transaction.js +5 -3
  6. package/dist/cjs/src/transaction/Transaction.js.map +1 -1
  7. package/dist/cjs/src/transaction/broadcasters/ARC.js +37 -25
  8. package/dist/cjs/src/transaction/broadcasters/ARC.js.map +1 -1
  9. package/dist/cjs/src/transaction/broadcasters/DefaultBroadcaster.js +12 -0
  10. package/dist/cjs/src/transaction/broadcasters/DefaultBroadcaster.js.map +1 -0
  11. package/dist/cjs/src/transaction/broadcasters/WhatsOnChainBroadcaster.js +66 -0
  12. package/dist/cjs/src/transaction/broadcasters/WhatsOnChainBroadcaster.js.map +1 -0
  13. package/dist/cjs/src/transaction/broadcasters/index.js +5 -5
  14. package/dist/cjs/src/transaction/broadcasters/index.js.map +1 -1
  15. package/dist/cjs/src/transaction/chaintrackers/DefaultChainTracker.js +12 -0
  16. package/dist/cjs/src/transaction/chaintrackers/DefaultChainTracker.js.map +1 -0
  17. package/dist/cjs/src/transaction/chaintrackers/WhatsOnChain.js +49 -0
  18. package/dist/cjs/src/transaction/chaintrackers/WhatsOnChain.js.map +1 -0
  19. package/dist/cjs/src/transaction/chaintrackers/index.js +11 -0
  20. package/dist/cjs/src/transaction/chaintrackers/index.js.map +1 -0
  21. package/dist/cjs/src/transaction/{broadcasters → http}/DefaultHttpClient.js +8 -4
  22. package/dist/cjs/src/transaction/http/DefaultHttpClient.js.map +1 -0
  23. package/dist/cjs/src/transaction/http/FetchHttpClient.js +29 -0
  24. package/dist/cjs/src/transaction/http/FetchHttpClient.js.map +1 -0
  25. package/dist/cjs/src/transaction/http/HttpClient.js.map +1 -0
  26. package/dist/cjs/src/transaction/{broadcasters → http}/NodejsHttpClient.js +14 -12
  27. package/dist/cjs/src/transaction/http/NodejsHttpClient.js.map +1 -0
  28. package/dist/cjs/src/transaction/http/index.js +10 -0
  29. package/dist/cjs/src/transaction/http/index.js.map +1 -0
  30. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  31. package/dist/esm/mod.js +1 -0
  32. package/dist/esm/mod.js.map +1 -1
  33. package/dist/esm/src/transaction/Transaction.js +5 -3
  34. package/dist/esm/src/transaction/Transaction.js.map +1 -1
  35. package/dist/esm/src/transaction/broadcasters/ARC.js +37 -25
  36. package/dist/esm/src/transaction/broadcasters/ARC.js.map +1 -1
  37. package/dist/esm/src/transaction/broadcasters/DefaultBroadcaster.js +5 -0
  38. package/dist/esm/src/transaction/broadcasters/DefaultBroadcaster.js.map +1 -0
  39. package/dist/esm/src/transaction/broadcasters/WhatsOnChainBroadcaster.js +65 -0
  40. package/dist/esm/src/transaction/broadcasters/WhatsOnChainBroadcaster.js.map +1 -0
  41. package/dist/esm/src/transaction/broadcasters/index.js +2 -2
  42. package/dist/esm/src/transaction/broadcasters/index.js.map +1 -1
  43. package/dist/esm/src/transaction/chaintrackers/DefaultChainTracker.js +5 -0
  44. package/dist/esm/src/transaction/chaintrackers/DefaultChainTracker.js.map +1 -0
  45. package/dist/esm/src/transaction/chaintrackers/WhatsOnChain.js +50 -0
  46. package/dist/esm/src/transaction/chaintrackers/WhatsOnChain.js.map +1 -0
  47. package/dist/esm/src/transaction/chaintrackers/index.js +3 -0
  48. package/dist/esm/src/transaction/chaintrackers/index.js.map +1 -0
  49. package/dist/esm/src/transaction/{broadcasters → http}/DefaultHttpClient.js +8 -5
  50. package/dist/esm/src/transaction/http/DefaultHttpClient.js.map +1 -0
  51. package/dist/esm/src/transaction/http/FetchHttpClient.js +26 -0
  52. package/dist/esm/src/transaction/http/FetchHttpClient.js.map +1 -0
  53. package/dist/esm/src/transaction/http/HttpClient.js.map +1 -0
  54. package/dist/esm/src/transaction/http/NodejsHttpClient.js +38 -0
  55. package/dist/esm/src/transaction/http/NodejsHttpClient.js.map +1 -0
  56. package/dist/esm/src/transaction/http/index.js +4 -0
  57. package/dist/esm/src/transaction/http/index.js.map +1 -0
  58. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  59. package/dist/types/mod.d.ts +1 -0
  60. package/dist/types/mod.d.ts.map +1 -1
  61. package/dist/types/src/transaction/Transaction.d.ts +3 -3
  62. package/dist/types/src/transaction/Transaction.d.ts.map +1 -1
  63. package/dist/types/src/transaction/broadcasters/ARC.d.ts +23 -8
  64. package/dist/types/src/transaction/broadcasters/ARC.d.ts.map +1 -1
  65. package/dist/types/src/transaction/broadcasters/DefaultBroadcaster.d.ts +3 -0
  66. package/dist/types/src/transaction/broadcasters/DefaultBroadcaster.d.ts.map +1 -0
  67. package/dist/types/src/transaction/broadcasters/WhatsOnChainBroadcaster.d.ts +26 -0
  68. package/dist/types/src/transaction/broadcasters/WhatsOnChainBroadcaster.d.ts.map +1 -0
  69. package/dist/types/src/transaction/broadcasters/index.d.ts +3 -4
  70. package/dist/types/src/transaction/broadcasters/index.d.ts.map +1 -1
  71. package/dist/types/src/transaction/chaintrackers/DefaultChainTracker.d.ts +3 -0
  72. package/dist/types/src/transaction/chaintrackers/DefaultChainTracker.d.ts.map +1 -0
  73. package/dist/types/src/transaction/chaintrackers/WhatsOnChain.d.ts +28 -0
  74. package/dist/types/src/transaction/chaintrackers/WhatsOnChain.d.ts.map +1 -0
  75. package/dist/types/src/transaction/chaintrackers/index.d.ts +4 -0
  76. package/dist/types/src/transaction/chaintrackers/index.d.ts.map +1 -0
  77. package/dist/types/src/transaction/http/DefaultHttpClient.d.ts +8 -0
  78. package/dist/types/src/transaction/http/DefaultHttpClient.d.ts.map +1 -0
  79. package/dist/types/src/transaction/http/FetchHttpClient.d.ts +31 -0
  80. package/dist/types/src/transaction/http/FetchHttpClient.d.ts.map +1 -0
  81. package/dist/types/src/transaction/http/HttpClient.d.ts +43 -0
  82. package/dist/types/src/transaction/http/HttpClient.d.ts.map +1 -0
  83. package/dist/types/src/transaction/{broadcasters → http}/NodejsHttpClient.d.ts +2 -2
  84. package/dist/types/src/transaction/http/NodejsHttpClient.d.ts.map +1 -0
  85. package/dist/types/src/transaction/http/index.d.ts +7 -0
  86. package/dist/types/src/transaction/http/index.d.ts.map +1 -0
  87. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  88. package/docs/examples/EXAMPLE_BUILDING_CUSTOM_TX_BROADCASTER.md +2 -0
  89. package/docs/examples/EXAMPLE_COMPLEX_TX.md +2 -4
  90. package/docs/examples/EXAMPLE_SIMPLE_TX.md +44 -5
  91. package/docs/examples/EXAMPLE_VERIFYING_BEEF.md +29 -22
  92. package/docs/examples/EXAMPLE_VERIFYING_ROOTS.md +18 -63
  93. package/docs/examples/GETTING_STARTED_NODE_CJS.md +2 -4
  94. package/docs/examples/GETTING_STARTED_REACT.md +2 -4
  95. package/mod.ts +2 -1
  96. package/package.json +21 -1
  97. package/src/transaction/Transaction.ts +5 -3
  98. package/src/transaction/__tests/Transaction.test.ts +62 -0
  99. package/src/transaction/broadcasters/ARC.ts +75 -27
  100. package/src/transaction/broadcasters/DefaultBroadcaster.ts +6 -0
  101. package/src/transaction/broadcasters/WhatsOnChainBroadcaster.ts +70 -0
  102. package/src/transaction/broadcasters/__tests/ARC.test.ts +92 -19
  103. package/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.ts +165 -0
  104. package/src/transaction/broadcasters/index.ts +3 -4
  105. package/src/transaction/chaintrackers/DefaultChainTracker.ts +6 -0
  106. package/src/transaction/chaintrackers/WhatsOnChain.ts +70 -0
  107. package/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.ts +135 -0
  108. package/src/transaction/chaintrackers/index.ts +3 -0
  109. package/src/transaction/http/DefaultHttpClient.ts +32 -0
  110. package/src/transaction/http/FetchHttpClient.ts +50 -0
  111. package/src/transaction/http/HttpClient.ts +45 -0
  112. package/src/transaction/http/NodejsHttpClient.ts +55 -0
  113. package/src/transaction/http/index.ts +6 -0
  114. package/dist/cjs/src/transaction/broadcasters/DefaultHttpClient.js.map +0 -1
  115. package/dist/cjs/src/transaction/broadcasters/HttpClient.js.map +0 -1
  116. package/dist/cjs/src/transaction/broadcasters/NodejsHttpClient.js.map +0 -1
  117. package/dist/esm/src/transaction/broadcasters/DefaultHttpClient.js.map +0 -1
  118. package/dist/esm/src/transaction/broadcasters/HttpClient.js.map +0 -1
  119. package/dist/esm/src/transaction/broadcasters/NodejsHttpClient.js +0 -36
  120. package/dist/esm/src/transaction/broadcasters/NodejsHttpClient.js.map +0 -1
  121. package/dist/types/src/transaction/broadcasters/DefaultHttpClient.d.ts +0 -6
  122. package/dist/types/src/transaction/broadcasters/DefaultHttpClient.d.ts.map +0 -1
  123. package/dist/types/src/transaction/broadcasters/HttpClient.d.ts +0 -33
  124. package/dist/types/src/transaction/broadcasters/HttpClient.d.ts.map +0 -1
  125. package/dist/types/src/transaction/broadcasters/NodejsHttpClient.d.ts.map +0 -1
  126. package/src/transaction/broadcasters/DefaultHttpClient.ts +0 -29
  127. package/src/transaction/broadcasters/HttpClient.ts +0 -34
  128. package/src/transaction/broadcasters/NodejsHttpClient.ts +0 -55
  129. /package/dist/cjs/src/transaction/{broadcasters → http}/HttpClient.js +0 -0
  130. /package/dist/esm/src/transaction/{broadcasters → http}/HttpClient.js +0 -0
@@ -0,0 +1,50 @@
1
+ import { HttpClient, HttpClientRequestOptions, HttpClientResponse } from './HttpClient.js';
2
+
3
+ /** fetch function interface limited to options needed by ts-sdk */
4
+ export interface Fetch {
5
+ /**
6
+ * Makes a request to the server.
7
+ * @param url The URL to make the request to.
8
+ * @param options The request configuration.
9
+ */
10
+ (url: string, options: FetchOptions): Promise<Response>;
11
+ }
12
+
13
+ /**
14
+ * An interface for configuration of the request to be passed to the fetch method
15
+ * limited to options needed by ts-sdk.
16
+ */
17
+ export interface FetchOptions {
18
+ /** A string to set request's method. */
19
+ method?: string;
20
+ /** An object literal set request's headers. */
21
+ headers?: Record<string, string>;
22
+ /** An object or null to set request's body. */
23
+ body?: string | null;
24
+ }
25
+
26
+ /**
27
+ * Adapter for Node.js Https module to be used as HttpClient
28
+ */
29
+ export class FetchHttpClient implements HttpClient {
30
+ constructor(private fetch: Fetch) {}
31
+
32
+ async request<D>(url: string, options: HttpClientRequestOptions): Promise<HttpClientResponse<D>> {
33
+ const fetchOptions: FetchOptions = {
34
+ method: options.method,
35
+ headers: options.headers,
36
+ body: JSON.stringify(options.data),
37
+ };
38
+
39
+ const res = await this.fetch(url, fetchOptions);
40
+ const mediaType = res.headers.get('Content-Type');
41
+ const data = mediaType === 'application/json' ? await res.json() : await res.text();
42
+
43
+ return {
44
+ ok: res.ok,
45
+ status: res.status,
46
+ statusText: res.statusText,
47
+ data: data as D,
48
+ };
49
+ }
50
+ }
@@ -0,0 +1,45 @@
1
+ /**
2
+ * An interface for HTTP client used to make HTTP requests.
3
+ */
4
+ export interface HttpClient {
5
+ /**
6
+ * Makes a request to the server.
7
+ * @param url The URL to make the request to.
8
+ * @param options The request configuration.
9
+ */
10
+ request<T = any, D = any>(url: string, options: HttpClientRequestOptions<D>): Promise<HttpClientResponse<T>>;
11
+ }
12
+
13
+ /**
14
+ * An interface for configuration of the request to be passed to the request method.
15
+ */
16
+ export interface HttpClientRequestOptions<Data = any> {
17
+ /** A string to set request's method. */
18
+ method?: string;
19
+ /** An object literal set request's headers. */
20
+ headers?: Record<string, string>;
21
+ /** An object or null to set request's body. */
22
+ data?: Data;
23
+ }
24
+
25
+ /**
26
+ * An interface for the response returned by the request method.
27
+ */
28
+ export type HttpClientResponse<T = any> = {
29
+ data: T;
30
+ /** The status code of the response. */
31
+ status: number;
32
+ /** The status text of the response. */
33
+ statusText: string;
34
+ /** A flag indicating whether the request ends with success status or not. */
35
+ ok: true;
36
+ } | {
37
+ data: any;
38
+ /** The status code of the response. */
39
+ status: number;
40
+ /** The status text of the response. */
41
+ statusText: string;
42
+ /** A flag indicating whether the request ends with success status or not. */
43
+ ok: false;
44
+ }
45
+
@@ -0,0 +1,55 @@
1
+ import { HttpClient, HttpClientRequestOptions, HttpClientResponse } from './HttpClient.js';
2
+
3
+ /** Node.js Https module interface limited to options needed by ts-sdk */
4
+ export interface HttpsNodejs {
5
+ request(url: string, options: HttpClientRequestOptions, callback: (res: any) => void): NodejsHttpClientRequest;
6
+ }
7
+
8
+ /** Nodejs result of the Node.js https.request call limited to options needed by ts-sdk */
9
+ export interface NodejsHttpClientRequest {
10
+ write(chunk: string): void;
11
+
12
+ end(): void;
13
+
14
+ on(event: string, callback: (data: any) => void): void;
15
+
16
+ end(): void;
17
+ }
18
+
19
+ /**
20
+ * Adapter for Node.js Https module to be used as HttpClient
21
+ */
22
+ export class NodejsHttpClient implements HttpClient {
23
+ constructor(private https: HttpsNodejs) {}
24
+
25
+ async request(url: string, requestOptions: HttpClientRequestOptions): Promise<HttpClientResponse> {
26
+ return await new Promise((resolve, reject) => {
27
+ const req = this.https.request(url, requestOptions, (res) => {
28
+ let body = '';
29
+ res.on('data', (chunk: string) => {
30
+ body += chunk;
31
+ });
32
+ res.on('end', () => {
33
+ const ok = res.statusCode >= 200 && res.statusCode <= 299;
34
+ const mediaType = res.headers['content-type'];
35
+ const data = body && mediaType === 'application/json' ? JSON.parse(body) : body;
36
+ resolve({
37
+ status: res.statusCode,
38
+ statusText: res.statusMessage,
39
+ ok,
40
+ data,
41
+ });
42
+ });
43
+ });
44
+
45
+ req.on('error', (error) => {
46
+ reject(error);
47
+ });
48
+
49
+ if (!!requestOptions.data) {
50
+ req.write(JSON.stringify(requestOptions.data));
51
+ }
52
+ req.end();
53
+ });
54
+ }
55
+ }
@@ -0,0 +1,6 @@
1
+ export type { HttpClient, HttpClientResponse, HttpClientRequestOptions } from './HttpClient.js';
2
+ export { defaultHttpClient } from './DefaultHttpClient.js';
3
+ export { NodejsHttpClient } from './NodejsHttpClient.js';
4
+ export { FetchHttpClient } from './FetchHttpClient.js';
5
+ export type { Fetch, FetchOptions } from './FetchHttpClient.js';
6
+ export type { HttpsNodejs, NodejsHttpClientRequest } from './NodejsHttpClient.js';
@@ -1 +0,0 @@
1
- {"version":3,"file":"DefaultHttpClient.js","sourceRoot":"","sources":["../../../../../src/transaction/broadcasters/DefaultHttpClient.ts"],"names":[],"mappings":";;AACA,+DAAuD;AAEvD;;GAEG;AACH,SAAwB,iBAAiB;IACrC,MAAM,YAAY,GAAc;QAC5B,KAAK,CAAC,GAAG,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;QAClE,CAAC;KACJ,CAAA;IAED,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,UAAU,EAAE;QACrE,qCAAqC;QACrC,OAAO,MAAM,CAAA;KAChB;SAAM,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;QACvC,2BAA2B;QAC3B,2BAA2B;QAC3B,IAAI;YACA,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;YAC9B,OAAO,IAAI,sCAAgB,CAAC,KAAK,CAAC,CAAA;SACrC;QAAC,OAAO,CAAC,EAAE;YACR,OAAO,YAAY,CAAA;SACtB;KACJ;SAAM;QACH,OAAO,YAAY,CAAA;KACtB;AACL,CAAC;AAtBD,oCAsBC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"HttpClient.js","sourceRoot":"","sources":["../../../../../src/transaction/broadcasters/HttpClient.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"NodejsHttpClient.js","sourceRoot":"","sources":["../../../../../src/transaction/broadcasters/NodejsHttpClient.ts"],"names":[],"mappings":";;;AAkBA;;GAEG;AACH,MAAa,gBAAgB;IACzB,YAAoB,KAAkB;QAAlB,UAAK,GAAL,KAAK,CAAa;IACtC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,cAAwC;QAC7D,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACzC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE;gBACtD,IAAI,IAAI,GAAG,EAAE,CAAA;gBACb,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;oBAC7B,IAAI,IAAI,KAAK,CAAA;gBACjB,CAAC,CAAC,CAAA;gBACF,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;oBACf,OAAO,CAAC;wBACJ,EAAE,EAAE,GAAG,CAAC,UAAU,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG;wBAClD,UAAU,EAAE,GAAG,CAAC,UAAU;wBAC1B,KAAK,CAAC,IAAI;4BACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;wBAC3B,CAAC;qBACJ,CAAC,CAAA;gBACN,CAAC,CAAC,CAAA;YACN,CAAC,CAAC,CAAA;YAEF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;gBACpB,MAAM,CAAC,KAAK,CAAC,CAAA;YACjB,CAAC,CAAC,CAAA;YAEF,IAAI,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE;gBACvB,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;aACjC;YACD,GAAG,CAAC,GAAG,EAAE,CAAA;QACb,CAAC,CAAC,CAAA;IACN,CAAC;CACJ;AAhCD,4CAgCC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"DefaultHttpClient.js","sourceRoot":"","sources":["../../../../../src/transaction/broadcasters/DefaultHttpClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AAEvD;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB;IACrC,MAAM,YAAY,GAAc;QAC5B,KAAK,CAAC,GAAG,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;QAClE,CAAC;KACJ,CAAA;IAED,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,UAAU,EAAE;QACrE,qCAAqC;QACrC,OAAO,MAAM,CAAA;KAChB;SAAM,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;QACvC,2BAA2B;QAC3B,2BAA2B;QAC3B,IAAI;YACA,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;YAC9B,OAAO,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAA;SACrC;QAAC,OAAO,CAAC,EAAE;YACR,OAAO,YAAY,CAAA;SACtB;KACJ;SAAM;QACH,OAAO,YAAY,CAAA;KACtB;AACL,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"HttpClient.js","sourceRoot":"","sources":["../../../../../src/transaction/broadcasters/HttpClient.ts"],"names":[],"mappings":""}
@@ -1,36 +0,0 @@
1
- /**
2
- * Adapter for Node.js Https module to be used as HttpClient
3
- */
4
- export class NodejsHttpClient {
5
- https;
6
- constructor(https) {
7
- this.https = https;
8
- }
9
- async fetch(url, requestOptions) {
10
- return await new Promise((resolve, reject) => {
11
- const req = this.https.request(url, requestOptions, res => {
12
- let data = '';
13
- res.on('data', (chunk) => {
14
- data += chunk;
15
- });
16
- res.on('end', () => {
17
- resolve({
18
- ok: res.statusCode >= 200 && res.statusCode <= 299,
19
- statusCode: res.statusCode,
20
- async json() {
21
- return JSON.parse(data);
22
- }
23
- });
24
- });
25
- });
26
- req.on('error', error => {
27
- reject(error);
28
- });
29
- if (!!requestOptions.body) {
30
- req.write(requestOptions.body);
31
- }
32
- req.end();
33
- });
34
- }
35
- }
36
- //# sourceMappingURL=NodejsHttpClient.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NodejsHttpClient.js","sourceRoot":"","sources":["../../../../../src/transaction/broadcasters/NodejsHttpClient.ts"],"names":[],"mappings":"AAkBA;;GAEG;AACH,MAAM,OAAO,gBAAgB;IACL;IAApB,YAAoB,KAAkB;QAAlB,UAAK,GAAL,KAAK,CAAa;IACtC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,cAAwC;QAC7D,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACzC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE;gBACtD,IAAI,IAAI,GAAG,EAAE,CAAA;gBACb,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;oBAC7B,IAAI,IAAI,KAAK,CAAA;gBACjB,CAAC,CAAC,CAAA;gBACF,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;oBACf,OAAO,CAAC;wBACJ,EAAE,EAAE,GAAG,CAAC,UAAU,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG;wBAClD,UAAU,EAAE,GAAG,CAAC,UAAU;wBAC1B,KAAK,CAAC,IAAI;4BACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;wBAC3B,CAAC;qBACJ,CAAC,CAAA;gBACN,CAAC,CAAC,CAAA;YACN,CAAC,CAAC,CAAA;YAEF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;gBACpB,MAAM,CAAC,KAAK,CAAC,CAAA;YACjB,CAAC,CAAC,CAAA;YAEF,IAAI,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE;gBACvB,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;aACjC;YACD,GAAG,CAAC,GAAG,EAAE,CAAA;QACb,CAAC,CAAC,CAAA;IACN,CAAC;CACJ"}
@@ -1,6 +0,0 @@
1
- import { HttpClient } from "./HttpClient.js";
2
- /**
3
- * Returns a default HttpClient implementation based on the environment that it is run on.
4
- */
5
- export default function defaultHttpClient(): HttpClient;
6
- //# sourceMappingURL=DefaultHttpClient.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DefaultHttpClient.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/broadcasters/DefaultHttpClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAqB,MAAM,iBAAiB,CAAC;AAG/D;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,IAAI,UAAU,CAsBtD"}
@@ -1,33 +0,0 @@
1
- /**
2
- * An interface for HTTP client used by ARC to make HTTP requests.
3
- */
4
- export interface HttpClient {
5
- /**
6
- * Makes a request to the server.
7
- * @param url The URL to make the request to.
8
- * @param options The request configuration.
9
- */
10
- fetch(url: string, options: HttpClientRequestOptions): Promise<HttpClientResponse>;
11
- }
12
- /**
13
- * An interface for configuration of the request to be passed to the fetch method.
14
- */
15
- export interface HttpClientRequestOptions {
16
- /** A string to set request's method. */
17
- method?: string;
18
- /** An object literal set request's headers. */
19
- headers?: Record<string, string>;
20
- /** An object or null to set request's body. */
21
- body?: string | null;
22
- }
23
- /**
24
- * An interface for the response returned by the fetch method.
25
- */
26
- export interface HttpClientResponse {
27
- /** The status code of the response. */
28
- statusCode?: number;
29
- /** A flag indicating whether the request ends with success status or not. */
30
- ok?: boolean;
31
- json(): Promise<any>;
32
- }
33
- //# sourceMappingURL=HttpClient.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HttpClient.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/broadcasters/HttpClient.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB;;;;OAIG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAA;CACrF;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACrC,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6EAA6E;IAC7E,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;CACxB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"NodejsHttpClient.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/broadcasters/NodejsHttpClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,wBAAwB,EAAE,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AAEzF,yEAAyE;AACzE,MAAM,WAAW,WAAW;IACxB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,GAAG,uBAAuB,CAAC;CAClH;AAED,0FAA0F;AAC1F,MAAM,WAAW,uBAAuB;IACpC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B,GAAG,IAAI,IAAI,CAAC;IAEZ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;IAEvD,GAAG,IAAI,IAAI,CAAC;CACf;AAED;;GAEG;AACH,qBAAa,gBAAiB,YAAW,UAAU;IACnC,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,WAAW;IAGhC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,wBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CA4BlG"}
@@ -1,29 +0,0 @@
1
- import {HttpClient, HttpClientResponse} from "./HttpClient.js";
2
- import {NodejsHttpClient} from "./NodejsHttpClient.js";
3
-
4
- /**
5
- * Returns a default HttpClient implementation based on the environment that it is run on.
6
- */
7
- export default function defaultHttpClient(): HttpClient {
8
- const noHttpClient:HttpClient = {
9
- fetch(..._): Promise<HttpClientResponse> {
10
- throw new Error('No method available to perform HTTP request')
11
- }
12
- }
13
-
14
- if (typeof window !== 'undefined' && typeof window.fetch === 'function') {
15
- // Use fetch in a browser environment
16
- return window
17
- } else if (typeof require !== 'undefined') {
18
- // Use Node.js https module
19
- // eslint-disable-next-line
20
- try {
21
- const https = require('https')
22
- return new NodejsHttpClient(https)
23
- } catch (e) {
24
- return noHttpClient
25
- }
26
- } else {
27
- return noHttpClient
28
- }
29
- }
@@ -1,34 +0,0 @@
1
- /**
2
- * An interface for HTTP client used by ARC to make HTTP requests.
3
- */
4
- export interface HttpClient {
5
- /**
6
- * Makes a request to the server.
7
- * @param url The URL to make the request to.
8
- * @param options The request configuration.
9
- */
10
- fetch(url: string, options: HttpClientRequestOptions): Promise<HttpClientResponse>
11
- }
12
-
13
- /**
14
- * An interface for configuration of the request to be passed to the fetch method.
15
- */
16
- export interface HttpClientRequestOptions {
17
- /** A string to set request's method. */
18
- method?: string;
19
- /** An object literal set request's headers. */
20
- headers?: Record<string, string>;
21
- /** An object or null to set request's body. */
22
- body?: string | null;
23
- }
24
-
25
- /**
26
- * An interface for the response returned by the fetch method.
27
- */
28
- export interface HttpClientResponse {
29
- /** The status code of the response. */
30
- statusCode?: number;
31
- /** A flag indicating whether the request ends with success status or not. */
32
- ok?: boolean;
33
- json(): Promise<any>;
34
- }
@@ -1,55 +0,0 @@
1
- import {HttpClient, HttpClientRequestOptions, HttpClientResponse} from "./HttpClient.js";
2
-
3
- /** Node.js Https module interface limited to options needed by ts-sdk */
4
- export interface HttpsNodejs {
5
- request(url: string, options: HttpClientRequestOptions, callback: (res: any) => void): NodejsHttpClientRequest;
6
- }
7
-
8
- /** Nodejs result of the Node.js https.request call limited to options needed by ts-sdk */
9
- export interface NodejsHttpClientRequest {
10
- write(chunk: string): void;
11
-
12
- end(): void;
13
-
14
- on(event: string, callback: (data: any) => void): void;
15
-
16
- end(): void;
17
- }
18
-
19
- /**
20
- * Adapter for Node.js Https module to be used as HttpClient
21
- */
22
- export class NodejsHttpClient implements HttpClient {
23
- constructor(private https: HttpsNodejs) {
24
- }
25
-
26
- async fetch(url: string, requestOptions: HttpClientRequestOptions): Promise<HttpClientResponse> {
27
- return await new Promise((resolve, reject) => {
28
- const req = this.https.request(url, requestOptions, res => {
29
- let data = ''
30
- res.on('data', (chunk: string) => {
31
- data += chunk
32
- })
33
- res.on('end', () => {
34
- resolve({
35
- ok: res.statusCode >= 200 && res.statusCode <= 299,
36
- statusCode: res.statusCode,
37
- async json() {
38
- return JSON.parse(data)
39
- }
40
- })
41
- })
42
- })
43
-
44
- req.on('error', error => {
45
- reject(error)
46
- })
47
-
48
- if (!!requestOptions.body) {
49
- req.write(requestOptions.body)
50
- }
51
- req.end()
52
- })
53
- }
54
- }
55
-