@amadeus-protocol/sdk 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +410 -0
  3. package/dist/api/chain.d.ts +119 -0
  4. package/dist/api/chain.d.ts.map +1 -0
  5. package/dist/api/chain.js +147 -0
  6. package/dist/api/chain.js.map +1 -0
  7. package/dist/api/contract.d.ts +62 -0
  8. package/dist/api/contract.d.ts.map +1 -0
  9. package/dist/api/contract.js +76 -0
  10. package/dist/api/contract.js.map +1 -0
  11. package/dist/api/epoch.d.ts +68 -0
  12. package/dist/api/epoch.d.ts.map +1 -0
  13. package/dist/api/epoch.js +99 -0
  14. package/dist/api/epoch.js.map +1 -0
  15. package/dist/api/index.d.ts +8 -0
  16. package/dist/api/index.d.ts.map +1 -0
  17. package/dist/api/index.js +8 -0
  18. package/dist/api/index.js.map +1 -0
  19. package/dist/api/peer.d.ts +80 -0
  20. package/dist/api/peer.d.ts.map +1 -0
  21. package/dist/api/peer.js +95 -0
  22. package/dist/api/peer.js.map +1 -0
  23. package/dist/api/proof.d.ts +25 -0
  24. package/dist/api/proof.d.ts.map +1 -0
  25. package/dist/api/proof.js +30 -0
  26. package/dist/api/proof.js.map +1 -0
  27. package/dist/api/transaction.d.ts +71 -0
  28. package/dist/api/transaction.d.ts.map +1 -0
  29. package/dist/api/transaction.js +85 -0
  30. package/dist/api/transaction.js.map +1 -0
  31. package/dist/api/wallet.d.ts +39 -0
  32. package/dist/api/wallet.d.ts.map +1 -0
  33. package/dist/api/wallet.js +51 -0
  34. package/dist/api/wallet.js.map +1 -0
  35. package/dist/client.d.ts +70 -0
  36. package/dist/client.d.ts.map +1 -0
  37. package/dist/client.js +280 -0
  38. package/dist/client.js.map +1 -0
  39. package/dist/constants.d.ts +42 -0
  40. package/dist/constants.d.ts.map +1 -0
  41. package/dist/constants.js +42 -0
  42. package/dist/constants.js.map +1 -0
  43. package/dist/conversion.d.ts +32 -0
  44. package/dist/conversion.d.ts.map +1 -0
  45. package/dist/conversion.js +50 -0
  46. package/dist/conversion.js.map +1 -0
  47. package/dist/crypto.d.ts +93 -0
  48. package/dist/crypto.d.ts.map +1 -0
  49. package/dist/crypto.js +156 -0
  50. package/dist/crypto.js.map +1 -0
  51. package/dist/encoding.d.ts +108 -0
  52. package/dist/encoding.d.ts.map +1 -0
  53. package/dist/encoding.js +165 -0
  54. package/dist/encoding.js.map +1 -0
  55. package/dist/encryption.d.ts +76 -0
  56. package/dist/encryption.d.ts.map +1 -0
  57. package/dist/encryption.js +137 -0
  58. package/dist/encryption.js.map +1 -0
  59. package/dist/index.d.ts +47 -0
  60. package/dist/index.d.ts.map +1 -0
  61. package/dist/index.js +47 -0
  62. package/dist/index.js.map +1 -0
  63. package/dist/schemas.d.ts +67 -0
  64. package/dist/schemas.d.ts.map +1 -0
  65. package/dist/schemas.js +103 -0
  66. package/dist/schemas.js.map +1 -0
  67. package/dist/sdk.d.ts +100 -0
  68. package/dist/sdk.d.ts.map +1 -0
  69. package/dist/sdk.js +120 -0
  70. package/dist/sdk.js.map +1 -0
  71. package/dist/serialization.d.ts +42 -0
  72. package/dist/serialization.d.ts.map +1 -0
  73. package/dist/serialization.js +247 -0
  74. package/dist/serialization.js.map +1 -0
  75. package/dist/transaction-builder.d.ts +267 -0
  76. package/dist/transaction-builder.d.ts.map +1 -0
  77. package/dist/transaction-builder.js +397 -0
  78. package/dist/transaction-builder.js.map +1 -0
  79. package/dist/types.d.ts +550 -0
  80. package/dist/types.d.ts.map +1 -0
  81. package/dist/types.js +78 -0
  82. package/dist/types.js.map +1 -0
  83. package/dist/validation.d.ts +15 -0
  84. package/dist/validation.d.ts.map +1 -0
  85. package/dist/validation.js +39 -0
  86. package/dist/validation.js.map +1 -0
  87. package/package.json +80 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/api/transaction.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,KAAK,EACX,yBAAyB,EACzB,gCAAgC,EAChC,8BAA8B,EAC9B,WAAW,EACX,MAAM,UAAU,CAAA;AAIjB,qBAAa,cAAc;IACd,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAEzC;;;;;;;;;;;;;;OAcG;IACG,MAAM,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAK/E;;;;;;;;;;;;;;;OAeG;IACG,aAAa,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC,gCAAgC,CAAC;IAQ7F;;;;;;;;;;;OAWG;IACG,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAK7C;;;;;;;;;;;OAWG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,8BAA8B,CAAC;CAM5E"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Transaction API
3
+ *
4
+ * Provides methods for submitting transactions and querying transaction data
5
+ */
6
+ import { Base58HashSchema, TransactionDataSchema } from '../schemas';
7
+ import { validate } from '../validation';
8
+ export class TransactionAPI {
9
+ client;
10
+ constructor(client) {
11
+ this.client = client;
12
+ }
13
+ /**
14
+ * Submit a transaction to the network
15
+ *
16
+ * @param txPacked - Packed transaction as Uint8Array or Base58 string
17
+ * @returns Promise resolving to submission result
18
+ * @throws {AmadeusSDKError} If transaction data is invalid
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * const result = await sdk.transaction.submit(txPacked)
23
+ * if (result.error === 'ok') {
24
+ * console.log('Transaction hash:', result.hash)
25
+ * }
26
+ * ```
27
+ */
28
+ async submit(txPacked) {
29
+ validate(TransactionDataSchema, txPacked);
30
+ return this.client.post('/api/tx/submit', txPacked);
31
+ }
32
+ /**
33
+ * Submit a transaction and wait for confirmation
34
+ *
35
+ * @param txPacked - Packed transaction as Uint8Array or Base58 string
36
+ * @returns Promise resolving to submission result with confirmation
37
+ * @throws {AmadeusSDKError} If transaction data is invalid
38
+ *
39
+ * @example
40
+ * ```ts
41
+ * const result = await sdk.transaction.submitAndWait(txPacked)
42
+ * if (result.error === 'ok') {
43
+ * console.log('Transaction hash:', result.hash)
44
+ * console.log('Entry hash:', result.entry_hash)
45
+ * }
46
+ * ```
47
+ */
48
+ async submitAndWait(txPacked) {
49
+ validate(TransactionDataSchema, txPacked);
50
+ return this.client.post('/api/tx/submit_and_wait', txPacked);
51
+ }
52
+ /**
53
+ * Get transaction by ID
54
+ *
55
+ * @param txid - Transaction ID (Base58 encoded)
56
+ * @returns Promise resolving to transaction data
57
+ * @throws {AmadeusSDKError} If transaction ID is invalid
58
+ *
59
+ * @example
60
+ * ```ts
61
+ * const tx = await sdk.transaction.get('5Kd3N...')
62
+ * ```
63
+ */
64
+ async get(txid) {
65
+ validate(Base58HashSchema, txid);
66
+ return this.client.get(`/api/chain/tx/${txid}`);
67
+ }
68
+ /**
69
+ * Get transactions by entry hash
70
+ *
71
+ * @param entryHash - Entry hash (Base58 encoded)
72
+ * @returns Promise resolving to transactions in the entry
73
+ * @throws {AmadeusSDKError} If entry hash is invalid
74
+ *
75
+ * @example
76
+ * ```ts
77
+ * const { txs } = await sdk.transaction.getByEntry('5Kd3N...')
78
+ * ```
79
+ */
80
+ async getByEntry(entryHash) {
81
+ validate(Base58HashSchema, entryHash);
82
+ return this.client.get(`/api/chain/txs_in_entry/${entryHash}`);
83
+ }
84
+ }
85
+ //# sourceMappingURL=transaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/api/transaction.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,MAAM,OAAO,cAAc;IACN;IAApB,YAAoB,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAE7C;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,MAAM,CAAC,QAA6B;QACzC,QAAQ,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAA;QACzC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAA4B,gBAAgB,EAAE,QAAQ,CAAC,CAAA;IAC/E,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,aAAa,CAAC,QAA6B;QAChD,QAAQ,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAA;QACzC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CACtB,yBAAyB,EACzB,QAAQ,CACR,CAAA;IACF,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,GAAG,CAAC,IAAY;QACrB,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAA;QAChC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAc,iBAAiB,IAAI,EAAE,CAAC,CAAA;IAC7D,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,UAAU,CAAC,SAAiB;QACjC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAA;QACrC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CACrB,2BAA2B,SAAS,EAAE,CACtC,CAAA;IACF,CAAC;CACD"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Wallet API
3
+ *
4
+ * Provides methods for querying wallet balances and information
5
+ */
6
+ import type { AmadeusClient } from '../client';
7
+ import type { WalletBalance, GetAllBalancesResponse } from '../types';
8
+ export declare class WalletAPI {
9
+ private client;
10
+ constructor(client: AmadeusClient);
11
+ /**
12
+ * Get balance for a specific address and symbol
13
+ *
14
+ * @param address - Base58 encoded wallet address
15
+ * @param symbol - Token symbol (default: 'AMA')
16
+ * @returns Promise resolving to wallet balance
17
+ * @throws {AmadeusSDKError} If address is invalid
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * const balance = await sdk.wallet.getBalance('5Kd3N...', 'AMA')
22
+ * ```
23
+ */
24
+ getBalance(address: string, symbol?: string): Promise<WalletBalance>;
25
+ /**
26
+ * Get all balances for an address
27
+ *
28
+ * @param address - Base58 encoded wallet address
29
+ * @returns Promise resolving to all wallet balances
30
+ * @throws {AmadeusSDKError} If address is invalid
31
+ *
32
+ * @example
33
+ * ```ts
34
+ * const { balances } = await sdk.wallet.getAllBalances('5Kd3N...')
35
+ * ```
36
+ */
37
+ getAllBalances(address: string): Promise<GetAllBalancesResponse>;
38
+ }
39
+ //# sourceMappingURL=wallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../src/api/wallet.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAIrE,qBAAa,SAAS;IACT,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAEzC;;;;;;;;;;;;OAYG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,MAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAWjF;;;;;;;;;;;OAWG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAItE"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Wallet API
3
+ *
4
+ * Provides methods for querying wallet balances and information
5
+ */
6
+ import { Base58AddressSchema, NonEmptyStringSchema } from '../schemas';
7
+ import { validate } from '../validation';
8
+ export class WalletAPI {
9
+ client;
10
+ constructor(client) {
11
+ this.client = client;
12
+ }
13
+ /**
14
+ * Get balance for a specific address and symbol
15
+ *
16
+ * @param address - Base58 encoded wallet address
17
+ * @param symbol - Token symbol (default: 'AMA')
18
+ * @returns Promise resolving to wallet balance
19
+ * @throws {AmadeusSDKError} If address is invalid
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * const balance = await sdk.wallet.getBalance('5Kd3N...', 'AMA')
24
+ * ```
25
+ */
26
+ async getBalance(address, symbol = 'AMA') {
27
+ validate(Base58AddressSchema, address);
28
+ validate(NonEmptyStringSchema, symbol);
29
+ const url = symbol === 'AMA'
30
+ ? `/api/wallet/balance/${address}`
31
+ : `/api/wallet/balance/${address}/${symbol}`;
32
+ return this.client.get(url);
33
+ }
34
+ /**
35
+ * Get all balances for an address
36
+ *
37
+ * @param address - Base58 encoded wallet address
38
+ * @returns Promise resolving to all wallet balances
39
+ * @throws {AmadeusSDKError} If address is invalid
40
+ *
41
+ * @example
42
+ * ```ts
43
+ * const { balances } = await sdk.wallet.getAllBalances('5Kd3N...')
44
+ * ```
45
+ */
46
+ async getAllBalances(address) {
47
+ validate(Base58AddressSchema, address);
48
+ return this.client.get(`/api/wallet/balance_all/${address}`);
49
+ }
50
+ }
51
+ //# sourceMappingURL=wallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../src/api/wallet.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,MAAM,OAAO,SAAS;IACD;IAApB,YAAoB,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAE7C;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,UAAU,CAAC,OAAe,EAAE,SAAiB,KAAK;QACvD,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAA;QACtC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAA;QAEtC,MAAM,GAAG,GACR,MAAM,KAAK,KAAK;YACf,CAAC,CAAC,uBAAuB,OAAO,EAAE;YAClC,CAAC,CAAC,uBAAuB,OAAO,IAAI,MAAM,EAAE,CAAA;QAC9C,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAgB,GAAG,CAAC,CAAA;IAC3C,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,cAAc,CAAC,OAAe;QACnC,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAA;QACtC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAyB,2BAA2B,OAAO,EAAE,CAAC,CAAA;IACrF,CAAC;CACD"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * HTTP Client
3
+ *
4
+ * Lightweight HTTP client using native fetch API (no axios dependency)
5
+ * Provides request/response handling, timeout management, and error handling.
6
+ */
7
+ import type { AmadeusSDKConfig } from './types';
8
+ export declare class AmadeusClient {
9
+ private config;
10
+ private abortController;
11
+ /**
12
+ * Create a new AmadeusClient instance
13
+ *
14
+ * @param config - SDK configuration
15
+ * @throws {AmadeusSDKError} If baseUrl is invalid
16
+ */
17
+ constructor(config: AmadeusSDKConfig);
18
+ /**
19
+ * Make a GET request
20
+ *
21
+ * @param endpoint - API endpoint path
22
+ * @param params - Optional query parameters
23
+ * @returns Promise resolving to the response data
24
+ */
25
+ get<T = unknown>(endpoint: string, params?: Record<string, unknown>): Promise<T>;
26
+ /**
27
+ * Make a POST request
28
+ *
29
+ * @param endpoint - API endpoint path
30
+ * @param data - Request body data (Uint8Array for binary, object for JSON)
31
+ * @returns Promise resolving to the response data
32
+ */
33
+ post<T = unknown>(endpoint: string, data?: unknown): Promise<T>;
34
+ /**
35
+ * Build full URL with query parameters
36
+ */
37
+ private buildUrl;
38
+ /**
39
+ * Prepare request body and determine Content-Type
40
+ */
41
+ private prepareBody;
42
+ /**
43
+ * Make HTTP request with timeout
44
+ */
45
+ private request;
46
+ /**
47
+ * Handle API response and parse errors
48
+ */
49
+ private handleResponse;
50
+ /**
51
+ * Get current configuration
52
+ */
53
+ getConfig(): AmadeusSDKConfig;
54
+ /**
55
+ * Update base URL
56
+ *
57
+ * @param url - New base URL
58
+ * @throws {AmadeusSDKError} If URL is invalid
59
+ */
60
+ setBaseUrl(url: string): void;
61
+ /**
62
+ * Update headers
63
+ */
64
+ setHeaders(headers: Record<string, string>): void;
65
+ /**
66
+ * Cancel ongoing requests
67
+ */
68
+ cancel(): void;
69
+ }
70
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAe,MAAM,SAAS,CAAA;AAkB5D,qBAAa,aAAa;IACzB,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,eAAe,CAA+B;IAEtD;;;;;OAKG;gBACS,MAAM,EAAE,gBAAgB;IAuBpC;;;;;;OAMG;IACG,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAUtF;;;;;;OAMG;IACG,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAgBrE;;OAEG;IACH,OAAO,CAAC,QAAQ;IAchB;;OAEG;IACH,OAAO,CAAC,WAAW;IAoCnB;;OAEG;YACW,OAAO;IA2CrB;;OAEG;YACW,cAAc;IA0F5B;;OAEG;IACH,SAAS,IAAI,gBAAgB;IAI7B;;;;;OAKG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAO7B;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAIjD;;OAEG;IACH,MAAM,IAAI,IAAI;CAMd"}
package/dist/client.js ADDED
@@ -0,0 +1,280 @@
1
+ /**
2
+ * HTTP Client
3
+ *
4
+ * Lightweight HTTP client using native fetch API (no axios dependency)
5
+ * Provides request/response handling, timeout management, and error handling.
6
+ */
7
+ import { AmadeusSDKError } from './types';
8
+ import { NODE_API_URL, DEFAULT_TIMEOUT, SDK_VERSION } from './constants';
9
+ import { NonEmptyStringSchema } from './schemas';
10
+ import { validate } from './validation';
11
+ /**
12
+ * Validates a URL string
13
+ */
14
+ function isValidUrl(url) {
15
+ try {
16
+ const parsed = new URL(url);
17
+ return parsed.protocol === 'http:' || parsed.protocol === 'https:';
18
+ }
19
+ catch {
20
+ return false;
21
+ }
22
+ }
23
+ export class AmadeusClient {
24
+ config;
25
+ abortController = null;
26
+ /**
27
+ * Create a new AmadeusClient instance
28
+ *
29
+ * @param config - SDK configuration
30
+ * @throws {AmadeusSDKError} If baseUrl is invalid
31
+ */
32
+ constructor(config) {
33
+ const baseUrl = config.baseUrl || NODE_API_URL;
34
+ if (!isValidUrl(baseUrl)) {
35
+ throw new AmadeusSDKError(`Invalid baseUrl: ${baseUrl}. Must be a valid HTTP/HTTPS URL.`);
36
+ }
37
+ // Ensure baseUrl doesn't end with a slash
38
+ const normalizedBaseUrl = baseUrl.replace(/\/+$/, '');
39
+ this.config = {
40
+ baseUrl: normalizedBaseUrl,
41
+ timeout: config.timeout && config.timeout > 0 ? config.timeout : DEFAULT_TIMEOUT,
42
+ headers: {
43
+ 'Content-Type': 'application/octet-stream',
44
+ 'User-Agent': `@amadeus-protocol/sdk/${SDK_VERSION}`,
45
+ ...config.headers
46
+ }
47
+ };
48
+ }
49
+ /**
50
+ * Make a GET request
51
+ *
52
+ * @param endpoint - API endpoint path
53
+ * @param params - Optional query parameters
54
+ * @returns Promise resolving to the response data
55
+ */
56
+ async get(endpoint, params) {
57
+ validate(NonEmptyStringSchema, endpoint);
58
+ const url = this.buildUrl(endpoint, params);
59
+ const response = await this.request(url, {
60
+ method: 'GET'
61
+ });
62
+ return this.handleResponse(response);
63
+ }
64
+ /**
65
+ * Make a POST request
66
+ *
67
+ * @param endpoint - API endpoint path
68
+ * @param data - Request body data (Uint8Array for binary, object for JSON)
69
+ * @returns Promise resolving to the response data
70
+ */
71
+ async post(endpoint, data) {
72
+ validate(NonEmptyStringSchema, endpoint);
73
+ const url = this.buildUrl(endpoint);
74
+ const { body, contentType } = this.prepareBody(data);
75
+ const response = await this.request(url, {
76
+ method: 'POST',
77
+ body,
78
+ headers: {
79
+ 'Content-Type': contentType
80
+ }
81
+ });
82
+ return this.handleResponse(response);
83
+ }
84
+ /**
85
+ * Build full URL with query parameters
86
+ */
87
+ buildUrl(endpoint, params) {
88
+ const url = new URL(endpoint, this.config.baseUrl);
89
+ if (params) {
90
+ for (const [key, value] of Object.entries(params)) {
91
+ if (value !== undefined && value !== null) {
92
+ url.searchParams.append(key, String(value));
93
+ }
94
+ }
95
+ }
96
+ return url.toString();
97
+ }
98
+ /**
99
+ * Prepare request body and determine Content-Type
100
+ */
101
+ prepareBody(data) {
102
+ if (!data) {
103
+ return { body: undefined, contentType: 'application/octet-stream' };
104
+ }
105
+ // If it's already a Uint8Array or ArrayBuffer, send as binary
106
+ if (data instanceof Uint8Array) {
107
+ return { body: data, contentType: 'application/octet-stream' };
108
+ }
109
+ if (data instanceof ArrayBuffer) {
110
+ return { body: data, contentType: 'application/octet-stream' };
111
+ }
112
+ // If it's a Buffer (Node.js), convert to Uint8Array
113
+ if (typeof Buffer !== 'undefined' && Buffer.isBuffer(data)) {
114
+ return {
115
+ body: new Uint8Array(data),
116
+ contentType: 'application/octet-stream'
117
+ };
118
+ }
119
+ // For objects, try to send as binary if it has txPacked or tx_packed
120
+ if (typeof data === 'object' && data !== null) {
121
+ const obj = data;
122
+ if ('txPacked' in obj && obj.txPacked instanceof Uint8Array) {
123
+ return { body: obj.txPacked, contentType: 'application/octet-stream' };
124
+ }
125
+ if ('tx_packed' in obj && obj.tx_packed instanceof Uint8Array) {
126
+ return { body: obj.tx_packed, contentType: 'application/octet-stream' };
127
+ }
128
+ }
129
+ // Default: send as JSON
130
+ return { body: JSON.stringify(data), contentType: 'application/json' };
131
+ }
132
+ /**
133
+ * Make HTTP request with timeout
134
+ */
135
+ async request(url, options) {
136
+ // Cancel previous request if any
137
+ if (this.abortController) {
138
+ this.abortController.abort();
139
+ }
140
+ this.abortController = new AbortController();
141
+ const timeoutId = setTimeout(() => {
142
+ this.abortController?.abort();
143
+ }, this.config.timeout);
144
+ try {
145
+ const response = await fetch(url, {
146
+ ...options,
147
+ headers: {
148
+ ...this.config.headers,
149
+ ...options.headers
150
+ },
151
+ signal: this.abortController.signal
152
+ });
153
+ clearTimeout(timeoutId);
154
+ return response;
155
+ }
156
+ catch (error) {
157
+ clearTimeout(timeoutId);
158
+ if (error instanceof Error) {
159
+ if (error.name === 'AbortError' || error.name === 'TimeoutError') {
160
+ throw new AmadeusSDKError(`Request timeout after ${this.config.timeout}ms`, 408);
161
+ }
162
+ throw new AmadeusSDKError(`Request failed: ${error.message}`, 0, error instanceof Error
163
+ ? { message: error.message, name: error.name }
164
+ : { error: String(error) });
165
+ }
166
+ throw new AmadeusSDKError(`Request failed: ${String(error)}`, 0, {
167
+ error: String(error)
168
+ });
169
+ }
170
+ }
171
+ /**
172
+ * Handle API response and parse errors
173
+ */
174
+ async handleResponse(response) {
175
+ if (!response.ok) {
176
+ let errorData;
177
+ const contentType = response.headers.get('content-type');
178
+ try {
179
+ if (contentType?.includes('application/json')) {
180
+ errorData = await response.json();
181
+ }
182
+ else {
183
+ const text = await response.text();
184
+ // If it's HTML, try to extract a meaningful error message
185
+ if (contentType?.includes('text/html')) {
186
+ // Try to extract title or error message from HTML
187
+ const titleMatch = text.match(/<title>([^<]+)<\/title>/i);
188
+ const h1Match = text.match(/<h1[^>]*>([^<]+)<\/h1>/i);
189
+ errorData =
190
+ titleMatch?.[1] || h1Match?.[1] || `HTTP ${response.status} Error`;
191
+ }
192
+ else {
193
+ errorData = text;
194
+ }
195
+ }
196
+ }
197
+ catch (parseError) {
198
+ errorData = `Failed to parse error response: ${parseError instanceof Error ? parseError.message : String(parseError)}`;
199
+ }
200
+ const message = typeof errorData === 'object' && errorData !== null && 'error' in errorData
201
+ ? String(errorData.error)
202
+ : typeof errorData === 'string'
203
+ ? errorData.length > 500
204
+ ? `${errorData.substring(0, 500)}... (truncated)`
205
+ : errorData
206
+ : response.statusText || 'Unknown error';
207
+ throw new AmadeusSDKError(`HTTP ${response.status}: ${message}`, response.status, errorData);
208
+ }
209
+ const contentType = response.headers.get('content-type');
210
+ let data;
211
+ try {
212
+ if (contentType?.includes('application/json')) {
213
+ data = await response.json();
214
+ }
215
+ else {
216
+ // Try JSON first, fallback to text
217
+ const text = await response.text();
218
+ try {
219
+ data = JSON.parse(text);
220
+ }
221
+ catch {
222
+ data = text;
223
+ }
224
+ }
225
+ }
226
+ catch (parseError) {
227
+ throw new AmadeusSDKError(`Failed to parse response: ${parseError instanceof Error ? parseError.message : String(parseError)}`, response.status);
228
+ }
229
+ // Handle API response format
230
+ if (typeof data === 'object' && data !== null && 'error' in data) {
231
+ const apiResponse = data;
232
+ if (apiResponse.error === 'ok') {
233
+ // Remove error property from response (intentionally unused)
234
+ const { error: _error, ...rest } = apiResponse;
235
+ return rest;
236
+ }
237
+ else if (apiResponse.error === 'not_found') {
238
+ throw new AmadeusSDKError('Resource not found', 404, apiResponse);
239
+ }
240
+ else {
241
+ throw new AmadeusSDKError(apiResponse.error || 'Unknown API error', 400, apiResponse);
242
+ }
243
+ }
244
+ return data;
245
+ }
246
+ /**
247
+ * Get current configuration
248
+ */
249
+ getConfig() {
250
+ return { ...this.config };
251
+ }
252
+ /**
253
+ * Update base URL
254
+ *
255
+ * @param url - New base URL
256
+ * @throws {AmadeusSDKError} If URL is invalid
257
+ */
258
+ setBaseUrl(url) {
259
+ if (!isValidUrl(url)) {
260
+ throw new AmadeusSDKError(`Invalid baseUrl: ${url}. Must be a valid HTTP/HTTPS URL.`);
261
+ }
262
+ this.config.baseUrl = url.replace(/\/+$/, '');
263
+ }
264
+ /**
265
+ * Update headers
266
+ */
267
+ setHeaders(headers) {
268
+ this.config.headers = { ...this.config.headers, ...headers };
269
+ }
270
+ /**
271
+ * Cancel ongoing requests
272
+ */
273
+ cancel() {
274
+ if (this.abortController) {
275
+ this.abortController.abort();
276
+ this.abortController = null;
277
+ }
278
+ }
279
+ }
280
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Amadeus Protocol Constants
3
+ *
4
+ * This module contains all protocol-level constants used throughout the SDK.
5
+ */
6
+ /**
7
+ * SDK version
8
+ */
9
+ export declare const SDK_VERSION = "1.0.0";
10
+ /**
11
+ * Byte length of an Amadeus public key (BLS12-381 public key)
12
+ */
13
+ export declare const AMADEUS_PUBLIC_KEY_BYTE_LENGTH = 48;
14
+ /**
15
+ * Byte length of an Amadeus seed (private key seed)
16
+ */
17
+ export declare const AMADEUS_SEED_BYTE_LENGTH = 64;
18
+ /**
19
+ * Number of decimal places for AMA token
20
+ */
21
+ export declare const AMA_TOKEN_DECIMALS = 9;
22
+ /**
23
+ * Multiplier for converting between atomic units and AMA tokens
24
+ */
25
+ export declare const AMA_TOKEN_DECIMALS_MULTIPLIER: number;
26
+ /**
27
+ * Flat network transfer fee in AMA for standard transfers
28
+ */
29
+ export declare const AMA_TRANSFER_FEE = 0.02;
30
+ /**
31
+ * Default explorer URL
32
+ */
33
+ export declare const EXPLORER_URL = "https://explorer.ama.one";
34
+ /**
35
+ * Default node API URL
36
+ */
37
+ export declare const NODE_API_URL = "https://nodes.amadeus.bot/api";
38
+ /**
39
+ * Default request timeout in milliseconds
40
+ */
41
+ export declare const DEFAULT_TIMEOUT = 30000;
42
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,eAAO,MAAM,WAAW,UAAU,CAAA;AAElC;;GAEG;AACH,eAAO,MAAM,8BAA8B,KAAK,CAAA;AAEhD;;GAEG;AACH,eAAO,MAAM,wBAAwB,KAAK,CAAA;AAE1C;;GAEG;AACH,eAAO,MAAM,kBAAkB,IAAI,CAAA;AAEnC;;GAEG;AACH,eAAO,MAAM,6BAA6B,QAA2B,CAAA;AAErE;;GAEG;AACH,eAAO,MAAM,gBAAgB,OAAO,CAAA;AAEpC;;GAEG;AACH,eAAO,MAAM,YAAY,6BAA6B,CAAA;AAEtD;;GAEG;AACH,eAAO,MAAM,YAAY,kCAAkC,CAAA;AAE3D;;GAEG;AACH,eAAO,MAAM,eAAe,QAAQ,CAAA"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Amadeus Protocol Constants
3
+ *
4
+ * This module contains all protocol-level constants used throughout the SDK.
5
+ */
6
+ /**
7
+ * SDK version
8
+ */
9
+ export const SDK_VERSION = '1.0.0';
10
+ /**
11
+ * Byte length of an Amadeus public key (BLS12-381 public key)
12
+ */
13
+ export const AMADEUS_PUBLIC_KEY_BYTE_LENGTH = 48;
14
+ /**
15
+ * Byte length of an Amadeus seed (private key seed)
16
+ */
17
+ export const AMADEUS_SEED_BYTE_LENGTH = 64;
18
+ /**
19
+ * Number of decimal places for AMA token
20
+ */
21
+ export const AMA_TOKEN_DECIMALS = 9;
22
+ /**
23
+ * Multiplier for converting between atomic units and AMA tokens
24
+ */
25
+ export const AMA_TOKEN_DECIMALS_MULTIPLIER = 10 ** AMA_TOKEN_DECIMALS;
26
+ /**
27
+ * Flat network transfer fee in AMA for standard transfers
28
+ */
29
+ export const AMA_TRANSFER_FEE = 0.02;
30
+ /**
31
+ * Default explorer URL
32
+ */
33
+ export const EXPLORER_URL = 'https://explorer.ama.one';
34
+ /**
35
+ * Default node API URL
36
+ */
37
+ export const NODE_API_URL = 'https://nodes.amadeus.bot/api';
38
+ /**
39
+ * Default request timeout in milliseconds
40
+ */
41
+ export const DEFAULT_TIMEOUT = 30000;
42
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAA;AAElC;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,CAAA;AAEhD;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,CAAA;AAE1C;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAA;AAEnC;;GAEG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,IAAI,kBAAkB,CAAA;AAErE;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAA;AAEpC;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,0BAA0B,CAAA;AAEtD;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,+BAA+B,CAAA;AAE3D;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAA"}